diff --git a/.gitignore b/.gitignore
index ad9846b..483d4e0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,3 +19,18 @@ out
/meerkat_election_params_tempfile.dat
/meerkat_booth_system_messages.dat
local.properties
+# Angular junk
+*/tmp
+*/dist
+*/out-tsc
+*/node_modules
+*/e2e/*.js
+*/e2e/*.map
+*/.sass-cache
+*/connect.lock
+*/coverage
+*/libpeerconnection.log
+npm-debug.log
+testem.log
+*/typings
+
diff --git a/bulletin-board-server-frontend/.angular-cli.json b/bulletin-board-server-frontend/.angular-cli.json
new file mode 100644
index 0000000..23ffead
--- /dev/null
+++ b/bulletin-board-server-frontend/.angular-cli.json
@@ -0,0 +1,57 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "project": {
+ "name": "bulletin-board-server-frontend"
+ },
+ "apps": [
+ {
+ "root": "src",
+ "outDir": "dist",
+ "assets": [
+ "assets",
+ "favicon.ico"
+ ],
+ "index": "index.html",
+ "main": "main.ts",
+ "polyfills": "polyfills.ts",
+ "test": "test.ts",
+ "tsconfig": "tsconfig.app.json",
+ "testTsconfig": "tsconfig.spec.json",
+ "prefix": "app",
+ "styles": [
+ "styles.css"
+ ],
+ "scripts": [],
+ "environmentSource": "environments/environment.ts",
+ "environments": {
+ "dev": "environments/environment.ts",
+ "prod": "environments/environment.prod.ts"
+ }
+ }
+ ],
+ "e2e": {
+ "protractor": {
+ "config": "./protractor.conf.js"
+ }
+ },
+ "lint": [
+ {
+ "project": "src/tsconfig.app.json"
+ },
+ {
+ "project": "src/tsconfig.spec.json"
+ },
+ {
+ "project": "e2e/tsconfig.e2e.json"
+ }
+ ],
+ "test": {
+ "karma": {
+ "config": "./karma.conf.js"
+ }
+ },
+ "defaults": {
+ "styleExt": "css",
+ "component": {}
+ }
+}
diff --git a/bulletin-board-server-frontend/.editorconfig b/bulletin-board-server-frontend/.editorconfig
new file mode 100644
index 0000000..6e87a00
--- /dev/null
+++ b/bulletin-board-server-frontend/.editorconfig
@@ -0,0 +1,13 @@
+# Editor configuration, see http://editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.md]
+max_line_length = off
+trim_trailing_whitespace = false
diff --git a/bulletin-board-server-frontend/.gitignore b/bulletin-board-server-frontend/.gitignore
new file mode 100644
index 0000000..54bfd20
--- /dev/null
+++ b/bulletin-board-server-frontend/.gitignore
@@ -0,0 +1,42 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+
+# compiled output
+/dist
+/tmp
+/out-tsc
+
+# dependencies
+/node_modules
+
+# IDEs and editors
+/.idea
+.project
+.classpath
+.c9/
+*.launch
+.settings/
+*.sublime-workspace
+
+# IDE - VSCode
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+# misc
+/.sass-cache
+/connect.lock
+/coverage
+/libpeerconnection.log
+npm-debug.log
+testem.log
+/typings
+
+# e2e
+/e2e/*.js
+/e2e/*.map
+
+# System Files
+.DS_Store
+Thumbs.db
diff --git a/bulletin-board-server-frontend/README.md b/bulletin-board-server-frontend/README.md
new file mode 100644
index 0000000..280da2e
--- /dev/null
+++ b/bulletin-board-server-frontend/README.md
@@ -0,0 +1,28 @@
+# BulletinBoardServerFrontend
+
+This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.2.0.
+
+## Development server
+
+Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
+
+## Code scaffolding
+
+Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|module`.
+
+## Build
+
+Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
+
+## Running unit tests
+
+Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
+
+## Running end-to-end tests
+
+Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
+Before running the tests make sure you are serving the app via `ng serve`.
+
+## Further help
+
+To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
diff --git a/bulletin-board-server-frontend/e2e/app.e2e-spec.ts b/bulletin-board-server-frontend/e2e/app.e2e-spec.ts
new file mode 100644
index 0000000..d53b473
--- /dev/null
+++ b/bulletin-board-server-frontend/e2e/app.e2e-spec.ts
@@ -0,0 +1,14 @@
+import { BulletinBoardServerFrontendPage } from './app.po';
+
+describe('bulletin-board-server-frontend App', () => {
+ let page: BulletinBoardServerFrontendPage;
+
+ beforeEach(() => {
+ page = new BulletinBoardServerFrontendPage();
+ });
+
+ it('should display welcome message', () => {
+ page.navigateTo();
+ expect(page.getParagraphText()).toEqual('Welcome to app!!');
+ });
+});
diff --git a/bulletin-board-server-frontend/e2e/app.po.ts b/bulletin-board-server-frontend/e2e/app.po.ts
new file mode 100644
index 0000000..df1e7ee
--- /dev/null
+++ b/bulletin-board-server-frontend/e2e/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class BulletinBoardServerFrontendPage {
+ navigateTo() {
+ return browser.get('/');
+ }
+
+ getParagraphText() {
+ return element(by.css('app-root h1')).getText();
+ }
+}
diff --git a/bulletin-board-server-frontend/e2e/tsconfig.e2e.json b/bulletin-board-server-frontend/e2e/tsconfig.e2e.json
new file mode 100644
index 0000000..39b800f
--- /dev/null
+++ b/bulletin-board-server-frontend/e2e/tsconfig.e2e.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/e2e",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "jasminewd2",
+ "node"
+ ]
+ }
+}
diff --git a/bulletin-board-server-frontend/karma.conf.js b/bulletin-board-server-frontend/karma.conf.js
new file mode 100644
index 0000000..4d9ab9d
--- /dev/null
+++ b/bulletin-board-server-frontend/karma.conf.js
@@ -0,0 +1,33 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/0.13/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '',
+ frameworks: ['jasmine', '@angular/cli'],
+ plugins: [
+ require('karma-jasmine'),
+ require('karma-chrome-launcher'),
+ require('karma-jasmine-html-reporter'),
+ require('karma-coverage-istanbul-reporter'),
+ require('@angular/cli/plugins/karma')
+ ],
+ client:{
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
+ },
+ coverageIstanbulReporter: {
+ reports: [ 'html', 'lcovonly' ],
+ fixWebpackSourcePaths: true
+ },
+ angularCli: {
+ environment: 'dev'
+ },
+ reporters: ['progress', 'kjhtml'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ singleRun: false
+ });
+};
diff --git a/bulletin-board-server-frontend/package.json b/bulletin-board-server-frontend/package.json
new file mode 100644
index 0000000..eff5461
--- /dev/null
+++ b/bulletin-board-server-frontend/package.json
@@ -0,0 +1,51 @@
+{
+ "name": "bulletin-board-server-frontend",
+ "version": "0.0.0",
+ "license": "MIT",
+ "scripts": {
+ "ng": "ng",
+ "start": "ng serve",
+ "build": "ng build",
+ "test": "ng test",
+ "lint": "ng lint",
+ "e2e": "ng e2e"
+ },
+ "private": true,
+ "dependencies": {
+ "@angular/animations": "^4.0.0",
+ "@angular/common": "^4.0.0",
+ "@angular/compiler": "^4.0.0",
+ "@angular/core": "^4.0.0",
+ "@angular/forms": "^4.0.0",
+ "@angular/http": "^4.0.0",
+ "@angular/platform-browser": "^4.0.0",
+ "@angular/platform-browser-dynamic": "^4.0.0",
+ "@angular/router": "^4.0.0",
+ "@types/long": "^3.0.31",
+ "core-js": "^2.4.1",
+ "protobuf.js": "^6.8.0",
+ "rxjs": "^5.1.0",
+ "zone.js": "^0.8.4"
+ },
+ "devDependencies": {
+ "@angular/cli": "1.2.0",
+ "@angular/compiler-cli": "^4.0.0",
+ "@angular/language-service": "^4.0.0",
+ "@types/jasmine": "~2.5.53",
+ "@types/jasminewd2": "~2.0.2",
+ "@types/node": "~6.0.60",
+ "codelyzer": "~3.0.1",
+ "jasmine-core": "~2.6.2",
+ "jasmine-spec-reporter": "~4.1.0",
+ "karma": "~1.7.0",
+ "karma-chrome-launcher": "~2.1.1",
+ "karma-cli": "~1.0.1",
+ "karma-coverage-istanbul-reporter": "^1.2.1",
+ "karma-jasmine": "~1.1.0",
+ "karma-jasmine-html-reporter": "^0.2.2",
+ "protractor": "~5.1.2",
+ "ts-node": "~3.0.4",
+ "tslint": "~5.3.2",
+ "typescript": "~2.3.3"
+ }
+}
diff --git a/bulletin-board-server-frontend/protractor.conf.js b/bulletin-board-server-frontend/protractor.conf.js
new file mode 100644
index 0000000..7ee3b5e
--- /dev/null
+++ b/bulletin-board-server-frontend/protractor.conf.js
@@ -0,0 +1,28 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+ allScriptsTimeout: 11000,
+ specs: [
+ './e2e/**/*.e2e-spec.ts'
+ ],
+ capabilities: {
+ 'browserName': 'chrome'
+ },
+ directConnect: true,
+ baseUrl: 'http://localhost:4200/',
+ framework: 'jasmine',
+ jasmineNodeOpts: {
+ showColors: true,
+ defaultTimeoutInterval: 30000,
+ print: function() {}
+ },
+ onPrepare() {
+ require('ts-node').register({
+ project: 'e2e/tsconfig.e2e.json'
+ });
+ jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+ }
+};
diff --git a/bulletin-board-server-frontend/src/app/app.component.css b/bulletin-board-server-frontend/src/app/app.component.css
new file mode 100644
index 0000000..e69de29
diff --git a/bulletin-board-server-frontend/src/app/app.component.html b/bulletin-board-server-frontend/src/app/app.component.html
new file mode 100644
index 0000000..801abde
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/app.component.html
@@ -0,0 +1,12 @@
+
+
+
+ Welcome to {{title}}!!
+
+
+
Current status: {{status}}
+
+
+ {{errorMessage}}
+
+
diff --git a/bulletin-board-server-frontend/src/app/app.component.spec.ts b/bulletin-board-server-frontend/src/app/app.component.spec.ts
new file mode 100644
index 0000000..7d2799c
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/app.component.spec.ts
@@ -0,0 +1,32 @@
+import { TestBed, async } from '@angular/core/testing';
+
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ declarations: [
+ AppComponent
+ ],
+ }).compileComponents();
+ }));
+
+ it('should create the app', async(() => {
+ const fixture = TestBed.createComponent(AppComponent);
+ const app = fixture.debugElement.componentInstance;
+ expect(app).toBeTruthy();
+ }));
+
+ it(`should have as title 'app'`, async(() => {
+ const fixture = TestBed.createComponent(AppComponent);
+ const app = fixture.debugElement.componentInstance;
+ expect(app.title).toEqual('app');
+ }));
+
+ it('should render title in a h1 tag', async(() => {
+ const fixture = TestBed.createComponent(AppComponent);
+ fixture.detectChanges();
+ const compiled = fixture.debugElement.nativeElement;
+ expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!!');
+ }));
+});
diff --git a/bulletin-board-server-frontend/src/app/app.component.ts b/bulletin-board-server-frontend/src/app/app.component.ts
new file mode 100644
index 0000000..adff3f3
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/app.component.ts
@@ -0,0 +1,30 @@
+import {Component, OnInit} from '@angular/core';
+import {BBService} from "./bb.service"; // respectively "./node_modules/protobufjs"
+
+
+@Component({
+ selector: 'app-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.css'],
+ providers: [BBService]
+})
+
+export class AppComponent implements OnInit {
+
+ title = 'Bulletin-Board Server';
+ status = 'Not connected';
+ errorMessage = '';
+
+ constructor(private bbservice : BBService) { }
+
+
+ ngOnInit(): void {
+ this.bbservice.getStatus().subscribe(
+ status => this.status = status.name,
+ error => this.errorMessage = error
+ );
+ }
+
+}
+
+
diff --git a/bulletin-board-server-frontend/src/app/app.module.ts b/bulletin-board-server-frontend/src/app/app.module.ts
new file mode 100644
index 0000000..b15df26
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/app.module.ts
@@ -0,0 +1,20 @@
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+import { HttpModule } from '@angular/http';
+
+import { AppComponent } from './app.component';
+import {BBService} from "./bb.service";
+
+
+@NgModule({
+ declarations: [
+ AppComponent,
+ ],
+ imports: [
+ BrowserModule,
+ HttpModule,
+ ],
+ providers: [],
+ bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/bulletin-board-server-frontend/src/app/bb.service.ts b/bulletin-board-server-frontend/src/app/bb.service.ts
new file mode 100644
index 0000000..9e678f0
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/bb.service.ts
@@ -0,0 +1,37 @@
+import { Component } from '@angular/core';
+
+import { Injectable } from '@angular/core';
+import {Headers, Http, RequestOptions, ResponseContentType} from '@angular/http';
+
+import { meerkat } from "./bundle.js";
+import {Observable} from "rxjs/Observable";
+import 'rxjs/add/operator/catch';
+import 'rxjs/add/operator/map';
+
+ @Injectable()
+ export class BBService {
+ private headers = new Headers({'Content-Type': 'application/x-protobuf'});
+ private bbUrl = 'http://localhost:8081/bbserver'; // URL to web api
+ private statusPath = '/status';
+
+ constructor(private http: Http) { }
+
+ getStatus(): Observable {
+ let options = new RequestOptions({
+ responseType: ResponseContentType.ArrayBuffer
+ });
+
+ let res = this.http.get(this.bbUrl + this.statusPath, options);
+
+ return res
+ .catch(this.handleError)
+ .map(x => {
+ return meerkat.ServerStatus.decode(new Uint8Array(x.arrayBuffer()));
+ });
+ }
+
+ private handleError(error: any): Promise {
+ console.error('An error occurred', error); // for demo purposes only
+ return Promise.reject(error.message || error);
+ }
+ }
diff --git a/bulletin-board-server-frontend/src/app/bundle.d.ts b/bulletin-board-server-frontend/src/app/bundle.d.ts
new file mode 100644
index 0000000..1b8f4fa
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/bundle.d.ts
@@ -0,0 +1,7527 @@
+import * as $protobuf from "protobufjs";
+import '@types/long';
+
+/** Namespace meerkat. */
+export namespace meerkat {
+
+ /** Properties of a UIAnswer. */
+ interface IUIAnswer {
+
+ /** UIAnswer answer */
+ answer?: Uint8Array;
+
+ /** UIAnswer description */
+ description?: string;
+ }
+
+ /** Represents a UIAnswer. */
+ class UIAnswer {
+
+ /**
+ * Constructs a new UIAnswer.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IUIAnswer);
+
+ /** UIAnswer answer. */
+ public answer: Uint8Array;
+
+ /** UIAnswer description. */
+ public description: string;
+
+ /**
+ * Creates a new UIAnswer instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UIAnswer instance
+ */
+ public static create(properties?: meerkat.IUIAnswer): meerkat.UIAnswer;
+
+ /**
+ * Encodes the specified UIAnswer message. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages.
+ * @param message UIAnswer message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IUIAnswer, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UIAnswer message, length delimited. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages.
+ * @param message UIAnswer message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IUIAnswer, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a UIAnswer message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UIAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIAnswer;
+
+ /**
+ * Decodes a UIAnswer message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UIAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIAnswer;
+
+ /**
+ * Verifies a UIAnswer message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a UIAnswer message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UIAnswer
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.UIAnswer;
+
+ /**
+ * Creates a plain object from a UIAnswer message. Also converts values to other types if specified.
+ * @param message UIAnswer
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.UIAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UIAnswer to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ListOfAnswers. */
+ interface IListOfAnswers {
+
+ /** ListOfAnswers answers */
+ answers?: meerkat.IUIAnswer[];
+ }
+
+ /** Represents a ListOfAnswers. */
+ class ListOfAnswers {
+
+ /**
+ * Constructs a new ListOfAnswers.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IListOfAnswers);
+
+ /** ListOfAnswers answers. */
+ public answers: meerkat.IUIAnswer[];
+
+ /**
+ * Creates a new ListOfAnswers instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ListOfAnswers instance
+ */
+ public static create(properties?: meerkat.IListOfAnswers): meerkat.ListOfAnswers;
+
+ /**
+ * Encodes the specified ListOfAnswers message. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages.
+ * @param message ListOfAnswers message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IListOfAnswers, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ListOfAnswers message, length delimited. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages.
+ * @param message ListOfAnswers message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IListOfAnswers, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ListOfAnswers message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ListOfAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ListOfAnswers;
+
+ /**
+ * Decodes a ListOfAnswers message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ListOfAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ListOfAnswers;
+
+ /**
+ * Verifies a ListOfAnswers message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ListOfAnswers message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ListOfAnswers
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ListOfAnswers;
+
+ /**
+ * Creates a plain object from a ListOfAnswers message. Also converts values to other types if specified.
+ * @param message ListOfAnswers
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ListOfAnswers, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ListOfAnswers to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a UIAnswers. */
+ interface IUIAnswers {
+
+ /** UIAnswers AnswersType */
+ AnswersType?: number;
+
+ /** UIAnswers answers */
+ answers?: meerkat.IListOfAnswers;
+ }
+
+ /** Represents a UIAnswers. */
+ class UIAnswers {
+
+ /**
+ * Constructs a new UIAnswers.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IUIAnswers);
+
+ /** UIAnswers AnswersType. */
+ public AnswersType: number;
+
+ /** UIAnswers answers. */
+ public answers?: (meerkat.IListOfAnswers|null);
+
+ /**
+ * Creates a new UIAnswers instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UIAnswers instance
+ */
+ public static create(properties?: meerkat.IUIAnswers): meerkat.UIAnswers;
+
+ /**
+ * Encodes the specified UIAnswers message. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages.
+ * @param message UIAnswers message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IUIAnswers, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UIAnswers message, length delimited. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages.
+ * @param message UIAnswers message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IUIAnswers, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a UIAnswers message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UIAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIAnswers;
+
+ /**
+ * Decodes a UIAnswers message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UIAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIAnswers;
+
+ /**
+ * Verifies a UIAnswers message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a UIAnswers message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UIAnswers
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.UIAnswers;
+
+ /**
+ * Creates a plain object from a UIAnswers message. Also converts values to other types if specified.
+ * @param message UIAnswers
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.UIAnswers, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UIAnswers to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Question. */
+ interface IQuestion {
+
+ /** Question question */
+ question?: Uint8Array;
+ }
+
+ /** Represents a Question. */
+ class Question {
+
+ /**
+ * Constructs a new Question.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IQuestion);
+
+ /** Question question. */
+ public question: Uint8Array;
+
+ /**
+ * Creates a new Question instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Question instance
+ */
+ public static create(properties?: meerkat.IQuestion): meerkat.Question;
+
+ /**
+ * Encodes the specified Question message. Does not implicitly {@link meerkat.Question.verify|verify} messages.
+ * @param message Question message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Question message, length delimited. Does not implicitly {@link meerkat.Question.verify|verify} messages.
+ * @param message Question message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Question message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Question
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Question;
+
+ /**
+ * Decodes a Question message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Question
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Question;
+
+ /**
+ * Verifies a Question message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Question message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Question
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Question;
+
+ /**
+ * Creates a plain object from a Question message. Also converts values to other types if specified.
+ * @param message Question
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Question, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Question to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a UIQuestion. */
+ interface IUIQuestion {
+
+ /** UIQuestion QuestionType */
+ QuestionType?: number;
+
+ /** UIQuestion question */
+ question?: meerkat.IQuestion;
+ }
+
+ /** Represents a UIQuestion. */
+ class UIQuestion {
+
+ /**
+ * Constructs a new UIQuestion.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IUIQuestion);
+
+ /** UIQuestion QuestionType. */
+ public QuestionType: number;
+
+ /** UIQuestion question. */
+ public question?: (meerkat.IQuestion|null);
+
+ /**
+ * Creates a new UIQuestion instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UIQuestion instance
+ */
+ public static create(properties?: meerkat.IUIQuestion): meerkat.UIQuestion;
+
+ /**
+ * Encodes the specified UIQuestion message. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages.
+ * @param message UIQuestion message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IUIQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UIQuestion message, length delimited. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages.
+ * @param message UIQuestion message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IUIQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a UIQuestion message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UIQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIQuestion;
+
+ /**
+ * Decodes a UIQuestion message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UIQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIQuestion;
+
+ /**
+ * Verifies a UIQuestion message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a UIQuestion message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UIQuestion
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.UIQuestion;
+
+ /**
+ * Creates a plain object from a UIQuestion message. Also converts values to other types if specified.
+ * @param message UIQuestion
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.UIQuestion, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UIQuestion to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotQuestionUIElement. */
+ interface IBallotQuestionUIElement {
+
+ /** BallotQuestionUIElement answers */
+ answers?: meerkat.IUIAnswers;
+
+ /** BallotQuestionUIElement RandomizeListOrder */
+ RandomizeListOrder?: boolean;
+
+ /** BallotQuestionUIElement question */
+ question?: meerkat.IUIQuestion;
+ }
+
+ /** Represents a BallotQuestionUIElement. */
+ class BallotQuestionUIElement {
+
+ /**
+ * Constructs a new BallotQuestionUIElement.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotQuestionUIElement);
+
+ /** BallotQuestionUIElement answers. */
+ public answers?: (meerkat.IUIAnswers|null);
+
+ /** BallotQuestionUIElement RandomizeListOrder. */
+ public RandomizeListOrder: boolean;
+
+ /** BallotQuestionUIElement question. */
+ public question?: (meerkat.IUIQuestion|null);
+
+ /**
+ * Creates a new BallotQuestionUIElement instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotQuestionUIElement instance
+ */
+ public static create(properties?: meerkat.IBallotQuestionUIElement): meerkat.BallotQuestionUIElement;
+
+ /**
+ * Encodes the specified BallotQuestionUIElement message. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages.
+ * @param message BallotQuestionUIElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotQuestionUIElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotQuestionUIElement message, length delimited. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages.
+ * @param message BallotQuestionUIElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotQuestionUIElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotQuestionUIElement message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotQuestionUIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestionUIElement;
+
+ /**
+ * Decodes a BallotQuestionUIElement message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotQuestionUIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestionUIElement;
+
+ /**
+ * Verifies a BallotQuestionUIElement message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotQuestionUIElement message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotQuestionUIElement
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestionUIElement;
+
+ /**
+ * Creates a plain object from a BallotQuestionUIElement message. Also converts values to other types if specified.
+ * @param message BallotQuestionUIElement
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotQuestionUIElement, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotQuestionUIElement to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotQuestionsUIElements. */
+ interface IBallotQuestionsUIElements {
+
+ /** BallotQuestionsUIElements questions */
+ questions?: meerkat.IBallotQuestionUIElement[];
+ }
+
+ /** Represents a BallotQuestionsUIElements. */
+ class BallotQuestionsUIElements {
+
+ /**
+ * Constructs a new BallotQuestionsUIElements.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotQuestionsUIElements);
+
+ /** BallotQuestionsUIElements questions. */
+ public questions: meerkat.IBallotQuestionUIElement[];
+
+ /**
+ * Creates a new BallotQuestionsUIElements instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotQuestionsUIElements instance
+ */
+ public static create(properties?: meerkat.IBallotQuestionsUIElements): meerkat.BallotQuestionsUIElements;
+
+ /**
+ * Encodes the specified BallotQuestionsUIElements message. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages.
+ * @param message BallotQuestionsUIElements message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotQuestionsUIElements, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotQuestionsUIElements message, length delimited. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages.
+ * @param message BallotQuestionsUIElements message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotQuestionsUIElements, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotQuestionsUIElements message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotQuestionsUIElements
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestionsUIElements;
+
+ /**
+ * Decodes a BallotQuestionsUIElements message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotQuestionsUIElements
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestionsUIElements;
+
+ /**
+ * Verifies a BallotQuestionsUIElements message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotQuestionsUIElements message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotQuestionsUIElements
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestionsUIElements;
+
+ /**
+ * Creates a plain object from a BallotQuestionsUIElements message. Also converts values to other types if specified.
+ * @param message BallotQuestionsUIElements
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotQuestionsUIElements, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotQuestionsUIElements to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** ValueType enum. */
+ enum ValueType {
+ TEXT_TYPE = 0,
+ AUDIO_TYPE = 1,
+ IMAGE_TYPE = 2
+ }
+
+ /** Properties of a BoolMsg. */
+ interface IBoolMsg {
+
+ /** BoolMsg value */
+ value?: boolean;
+ }
+
+ /** Represents a BoolMsg. */
+ class BoolMsg {
+
+ /**
+ * Constructs a new BoolMsg.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBoolMsg);
+
+ /** BoolMsg value. */
+ public value: boolean;
+
+ /**
+ * Creates a new BoolMsg instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BoolMsg instance
+ */
+ public static create(properties?: meerkat.IBoolMsg): meerkat.BoolMsg;
+
+ /**
+ * Encodes the specified BoolMsg message. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages.
+ * @param message BoolMsg message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBoolMsg, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BoolMsg message, length delimited. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages.
+ * @param message BoolMsg message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBoolMsg, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BoolMsg message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BoolMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoolMsg;
+
+ /**
+ * Decodes a BoolMsg message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BoolMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoolMsg;
+
+ /**
+ * Verifies a BoolMsg message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BoolMsg message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BoolMsg
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BoolMsg;
+
+ /**
+ * Creates a plain object from a BoolMsg message. Also converts values to other types if specified.
+ * @param message BoolMsg
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BoolMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BoolMsg to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an IntMsg. */
+ interface IIntMsg {
+
+ /** IntMsg value */
+ value?: number;
+ }
+
+ /** Represents an IntMsg. */
+ class IntMsg {
+
+ /**
+ * Constructs a new IntMsg.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IIntMsg);
+
+ /** IntMsg value. */
+ public value: number;
+
+ /**
+ * Creates a new IntMsg instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns IntMsg instance
+ */
+ public static create(properties?: meerkat.IIntMsg): meerkat.IntMsg;
+
+ /**
+ * Encodes the specified IntMsg message. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages.
+ * @param message IntMsg message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IIntMsg, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified IntMsg message, length delimited. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages.
+ * @param message IntMsg message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IIntMsg, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an IntMsg message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns IntMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.IntMsg;
+
+ /**
+ * Decodes an IntMsg message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns IntMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.IntMsg;
+
+ /**
+ * Verifies an IntMsg message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an IntMsg message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns IntMsg
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.IntMsg;
+
+ /**
+ * Creates a plain object from an IntMsg message. Also converts values to other types if specified.
+ * @param message IntMsg
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.IntMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this IntMsg to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a MessageID. */
+ interface IMessageID {
+
+ /** MessageID ID */
+ ID?: Uint8Array;
+ }
+
+ /** Represents a MessageID. */
+ class MessageID {
+
+ /**
+ * Constructs a new MessageID.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IMessageID);
+
+ /** MessageID ID. */
+ public ID: Uint8Array;
+
+ /**
+ * Creates a new MessageID instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns MessageID instance
+ */
+ public static create(properties?: meerkat.IMessageID): meerkat.MessageID;
+
+ /**
+ * Encodes the specified MessageID message. Does not implicitly {@link meerkat.MessageID.verify|verify} messages.
+ * @param message MessageID message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IMessageID, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified MessageID message, length delimited. Does not implicitly {@link meerkat.MessageID.verify|verify} messages.
+ * @param message MessageID message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IMessageID, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a MessageID message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns MessageID
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageID;
+
+ /**
+ * Decodes a MessageID message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns MessageID
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageID;
+
+ /**
+ * Verifies a MessageID message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a MessageID message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns MessageID
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.MessageID;
+
+ /**
+ * Creates a plain object from a MessageID message. Also converts values to other types if specified.
+ * @param message MessageID
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.MessageID, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this MessageID to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an UnsignedBulletinBoardMessage. */
+ interface IUnsignedBulletinBoardMessage {
+
+ /** UnsignedBulletinBoardMessage tag */
+ tag?: string[];
+
+ /** UnsignedBulletinBoardMessage timestamp */
+ timestamp?: google.protobuf.ITimestamp;
+
+ /** UnsignedBulletinBoardMessage msgId */
+ msgId?: Uint8Array;
+
+ /** UnsignedBulletinBoardMessage data */
+ data?: Uint8Array;
+ }
+
+ /** Represents an UnsignedBulletinBoardMessage. */
+ class UnsignedBulletinBoardMessage {
+
+ /**
+ * Constructs a new UnsignedBulletinBoardMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IUnsignedBulletinBoardMessage);
+
+ /** UnsignedBulletinBoardMessage tag. */
+ public tag: string[];
+
+ /** UnsignedBulletinBoardMessage timestamp. */
+ public timestamp?: (google.protobuf.ITimestamp|null);
+
+ /** UnsignedBulletinBoardMessage msgId. */
+ public msgId: Uint8Array;
+
+ /** UnsignedBulletinBoardMessage data. */
+ public data: Uint8Array;
+
+ /** UnsignedBulletinBoardMessage dataType. */
+ public dataType?: string;
+
+ /**
+ * Creates a new UnsignedBulletinBoardMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UnsignedBulletinBoardMessage instance
+ */
+ public static create(properties?: meerkat.IUnsignedBulletinBoardMessage): meerkat.UnsignedBulletinBoardMessage;
+
+ /**
+ * Encodes the specified UnsignedBulletinBoardMessage message. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages.
+ * @param message UnsignedBulletinBoardMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IUnsignedBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UnsignedBulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages.
+ * @param message UnsignedBulletinBoardMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IUnsignedBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UnsignedBulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UnsignedBulletinBoardMessage;
+
+ /**
+ * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UnsignedBulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UnsignedBulletinBoardMessage;
+
+ /**
+ * Verifies an UnsignedBulletinBoardMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an UnsignedBulletinBoardMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UnsignedBulletinBoardMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.UnsignedBulletinBoardMessage;
+
+ /**
+ * Creates a plain object from an UnsignedBulletinBoardMessage message. Also converts values to other types if specified.
+ * @param message UnsignedBulletinBoardMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.UnsignedBulletinBoardMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UnsignedBulletinBoardMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BulletinBoardMessage. */
+ interface IBulletinBoardMessage {
+
+ /** BulletinBoardMessage entryNum */
+ entryNum?: (number|Long);
+
+ /** BulletinBoardMessage msg */
+ msg?: meerkat.IUnsignedBulletinBoardMessage;
+
+ /** BulletinBoardMessage sig */
+ sig?: meerkat.ISignature[];
+ }
+
+ /** Represents a BulletinBoardMessage. */
+ class BulletinBoardMessage {
+
+ /**
+ * Constructs a new BulletinBoardMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBulletinBoardMessage);
+
+ /** BulletinBoardMessage entryNum. */
+ public entryNum: (number|Long);
+
+ /** BulletinBoardMessage msg. */
+ public msg?: (meerkat.IUnsignedBulletinBoardMessage|null);
+
+ /** BulletinBoardMessage sig. */
+ public sig: meerkat.ISignature[];
+
+ /**
+ * Creates a new BulletinBoardMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BulletinBoardMessage instance
+ */
+ public static create(properties?: meerkat.IBulletinBoardMessage): meerkat.BulletinBoardMessage;
+
+ /**
+ * Encodes the specified BulletinBoardMessage message. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages.
+ * @param message BulletinBoardMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages.
+ * @param message BulletinBoardMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBulletinBoardMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BulletinBoardMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardMessage;
+
+ /**
+ * Decodes a BulletinBoardMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardMessage;
+
+ /**
+ * Verifies a BulletinBoardMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BulletinBoardMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BulletinBoardMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardMessage;
+
+ /**
+ * Creates a plain object from a BulletinBoardMessage message. Also converts values to other types if specified.
+ * @param message BulletinBoardMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BulletinBoardMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BulletinBoardMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BulletinBoardMessageList. */
+ interface IBulletinBoardMessageList {
+
+ /** BulletinBoardMessageList message */
+ message?: meerkat.IBulletinBoardMessage[];
+ }
+
+ /** Represents a BulletinBoardMessageList. */
+ class BulletinBoardMessageList {
+
+ /**
+ * Constructs a new BulletinBoardMessageList.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBulletinBoardMessageList);
+
+ /** BulletinBoardMessageList message. */
+ public message: meerkat.IBulletinBoardMessage[];
+
+ /**
+ * Creates a new BulletinBoardMessageList instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BulletinBoardMessageList instance
+ */
+ public static create(properties?: meerkat.IBulletinBoardMessageList): meerkat.BulletinBoardMessageList;
+
+ /**
+ * Encodes the specified BulletinBoardMessageList message. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages.
+ * @param message BulletinBoardMessageList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBulletinBoardMessageList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BulletinBoardMessageList message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages.
+ * @param message BulletinBoardMessageList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBulletinBoardMessageList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BulletinBoardMessageList message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BulletinBoardMessageList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardMessageList;
+
+ /**
+ * Decodes a BulletinBoardMessageList message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BulletinBoardMessageList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardMessageList;
+
+ /**
+ * Verifies a BulletinBoardMessageList message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BulletinBoardMessageList message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BulletinBoardMessageList
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardMessageList;
+
+ /**
+ * Creates a plain object from a BulletinBoardMessageList message. Also converts values to other types if specified.
+ * @param message BulletinBoardMessageList
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BulletinBoardMessageList, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BulletinBoardMessageList to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** FilterType enum. */
+ enum FilterType {
+ MSG_ID = 0,
+ EXACT_ENTRY = 1,
+ MAX_ENTRY = 2,
+ MIN_ENTRY = 3,
+ SIGNER_ID = 4,
+ TAG = 5,
+ AFTER_TIME = 6,
+ BEFORE_TIME = 7,
+ MAX_MESSAGES = 8
+ }
+
+ /** Properties of a MessageFilter. */
+ interface IMessageFilter {
+
+ /** MessageFilter type */
+ type?: meerkat.FilterType;
+
+ /** MessageFilter id */
+ id?: Uint8Array;
+
+ /** MessageFilter entry */
+ entry?: (number|Long);
+
+ /** MessageFilter tag */
+ tag?: string;
+
+ /** MessageFilter maxMessages */
+ maxMessages?: (number|Long);
+
+ /** MessageFilter timestamp */
+ timestamp?: google.protobuf.ITimestamp;
+ }
+
+ /** Represents a MessageFilter. */
+ class MessageFilter {
+
+ /**
+ * Constructs a new MessageFilter.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IMessageFilter);
+
+ /** MessageFilter type. */
+ public type: meerkat.FilterType;
+
+ /** MessageFilter id. */
+ public id: Uint8Array;
+
+ /** MessageFilter entry. */
+ public entry: (number|Long);
+
+ /** MessageFilter tag. */
+ public tag: string;
+
+ /** MessageFilter maxMessages. */
+ public maxMessages: (number|Long);
+
+ /** MessageFilter timestamp. */
+ public timestamp?: (google.protobuf.ITimestamp|null);
+
+ /** MessageFilter filter. */
+ public filter?: string;
+
+ /**
+ * Creates a new MessageFilter instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns MessageFilter instance
+ */
+ public static create(properties?: meerkat.IMessageFilter): meerkat.MessageFilter;
+
+ /**
+ * Encodes the specified MessageFilter message. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages.
+ * @param message MessageFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IMessageFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified MessageFilter message, length delimited. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages.
+ * @param message MessageFilter message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IMessageFilter, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a MessageFilter message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns MessageFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageFilter;
+
+ /**
+ * Decodes a MessageFilter message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns MessageFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageFilter;
+
+ /**
+ * Verifies a MessageFilter message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a MessageFilter message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns MessageFilter
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.MessageFilter;
+
+ /**
+ * Creates a plain object from a MessageFilter message. Also converts values to other types if specified.
+ * @param message MessageFilter
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.MessageFilter, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this MessageFilter to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a MessageFilterList. */
+ interface IMessageFilterList {
+
+ /** MessageFilterList filter */
+ filter?: meerkat.IMessageFilter[];
+ }
+
+ /** Represents a MessageFilterList. */
+ class MessageFilterList {
+
+ /**
+ * Constructs a new MessageFilterList.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IMessageFilterList);
+
+ /** MessageFilterList filter. */
+ public filter: meerkat.IMessageFilter[];
+
+ /**
+ * Creates a new MessageFilterList instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns MessageFilterList instance
+ */
+ public static create(properties?: meerkat.IMessageFilterList): meerkat.MessageFilterList;
+
+ /**
+ * Encodes the specified MessageFilterList message. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages.
+ * @param message MessageFilterList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IMessageFilterList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified MessageFilterList message, length delimited. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages.
+ * @param message MessageFilterList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IMessageFilterList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a MessageFilterList message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns MessageFilterList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MessageFilterList;
+
+ /**
+ * Decodes a MessageFilterList message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns MessageFilterList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MessageFilterList;
+
+ /**
+ * Verifies a MessageFilterList message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a MessageFilterList message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns MessageFilterList
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.MessageFilterList;
+
+ /**
+ * Creates a plain object from a MessageFilterList message. Also converts values to other types if specified.
+ * @param message MessageFilterList
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.MessageFilterList, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this MessageFilterList to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BeginBatchMessage. */
+ interface IBeginBatchMessage {
+
+ /** BeginBatchMessage tag */
+ tag?: string[];
+ }
+
+ /** Represents a BeginBatchMessage. */
+ class BeginBatchMessage {
+
+ /**
+ * Constructs a new BeginBatchMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBeginBatchMessage);
+
+ /** BeginBatchMessage tag. */
+ public tag: string[];
+
+ /**
+ * Creates a new BeginBatchMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BeginBatchMessage instance
+ */
+ public static create(properties?: meerkat.IBeginBatchMessage): meerkat.BeginBatchMessage;
+
+ /**
+ * Encodes the specified BeginBatchMessage message. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages.
+ * @param message BeginBatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBeginBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BeginBatchMessage message, length delimited. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages.
+ * @param message BeginBatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBeginBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BeginBatchMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BeginBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BeginBatchMessage;
+
+ /**
+ * Decodes a BeginBatchMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BeginBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BeginBatchMessage;
+
+ /**
+ * Verifies a BeginBatchMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BeginBatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BeginBatchMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BeginBatchMessage;
+
+ /**
+ * Creates a plain object from a BeginBatchMessage message. Also converts values to other types if specified.
+ * @param message BeginBatchMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BeginBatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BeginBatchMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a CloseBatchMessage. */
+ interface ICloseBatchMessage {
+
+ /** CloseBatchMessage batchId */
+ batchId?: (number|Long);
+
+ /** CloseBatchMessage batchLength */
+ batchLength?: number;
+
+ /** CloseBatchMessage timestamp */
+ timestamp?: google.protobuf.ITimestamp;
+
+ /** CloseBatchMessage sig */
+ sig?: meerkat.ISignature[];
+ }
+
+ /** Represents a CloseBatchMessage. */
+ class CloseBatchMessage {
+
+ /**
+ * Constructs a new CloseBatchMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ICloseBatchMessage);
+
+ /** CloseBatchMessage batchId. */
+ public batchId: (number|Long);
+
+ /** CloseBatchMessage batchLength. */
+ public batchLength: number;
+
+ /** CloseBatchMessage timestamp. */
+ public timestamp?: (google.protobuf.ITimestamp|null);
+
+ /** CloseBatchMessage sig. */
+ public sig: meerkat.ISignature[];
+
+ /**
+ * Creates a new CloseBatchMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns CloseBatchMessage instance
+ */
+ public static create(properties?: meerkat.ICloseBatchMessage): meerkat.CloseBatchMessage;
+
+ /**
+ * Encodes the specified CloseBatchMessage message. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages.
+ * @param message CloseBatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ICloseBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified CloseBatchMessage message, length delimited. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages.
+ * @param message CloseBatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ICloseBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a CloseBatchMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns CloseBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CloseBatchMessage;
+
+ /**
+ * Decodes a CloseBatchMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns CloseBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CloseBatchMessage;
+
+ /**
+ * Verifies a CloseBatchMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a CloseBatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns CloseBatchMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.CloseBatchMessage;
+
+ /**
+ * Creates a plain object from a CloseBatchMessage message. Also converts values to other types if specified.
+ * @param message CloseBatchMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.CloseBatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this CloseBatchMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BatchChunk. */
+ interface IBatchChunk {
+
+ /** BatchChunk data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a BatchChunk. */
+ class BatchChunk {
+
+ /**
+ * Constructs a new BatchChunk.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBatchChunk);
+
+ /** BatchChunk data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new BatchChunk instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BatchChunk instance
+ */
+ public static create(properties?: meerkat.IBatchChunk): meerkat.BatchChunk;
+
+ /**
+ * Encodes the specified BatchChunk message. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages.
+ * @param message BatchChunk message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBatchChunk, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BatchChunk message, length delimited. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages.
+ * @param message BatchChunk message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBatchChunk, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BatchChunk message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BatchChunk
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchChunk;
+
+ /**
+ * Decodes a BatchChunk message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BatchChunk
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchChunk;
+
+ /**
+ * Verifies a BatchChunk message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BatchChunk message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BatchChunk
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BatchChunk;
+
+ /**
+ * Creates a plain object from a BatchChunk message. Also converts values to other types if specified.
+ * @param message BatchChunk
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BatchChunk, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BatchChunk to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BatchChunkList. */
+ interface IBatchChunkList {
+
+ /** BatchChunkList data */
+ data?: meerkat.IBatchChunk[];
+ }
+
+ /** Represents a BatchChunkList. */
+ class BatchChunkList {
+
+ /**
+ * Constructs a new BatchChunkList.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBatchChunkList);
+
+ /** BatchChunkList data. */
+ public data: meerkat.IBatchChunk[];
+
+ /**
+ * Creates a new BatchChunkList instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BatchChunkList instance
+ */
+ public static create(properties?: meerkat.IBatchChunkList): meerkat.BatchChunkList;
+
+ /**
+ * Encodes the specified BatchChunkList message. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages.
+ * @param message BatchChunkList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBatchChunkList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BatchChunkList message, length delimited. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages.
+ * @param message BatchChunkList message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBatchChunkList, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BatchChunkList message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BatchChunkList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchChunkList;
+
+ /**
+ * Decodes a BatchChunkList message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BatchChunkList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchChunkList;
+
+ /**
+ * Verifies a BatchChunkList message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BatchChunkList message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BatchChunkList
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BatchChunkList;
+
+ /**
+ * Creates a plain object from a BatchChunkList message. Also converts values to other types if specified.
+ * @param message BatchChunkList
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BatchChunkList, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BatchChunkList to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BatchMessage. */
+ interface IBatchMessage {
+
+ /** BatchMessage batchId */
+ batchId?: (number|Long);
+
+ /** BatchMessage serialNum */
+ serialNum?: number;
+
+ /** BatchMessage data */
+ data?: meerkat.IBatchChunk;
+ }
+
+ /** Represents a BatchMessage. */
+ class BatchMessage {
+
+ /**
+ * Constructs a new BatchMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBatchMessage);
+
+ /** BatchMessage batchId. */
+ public batchId: (number|Long);
+
+ /** BatchMessage serialNum. */
+ public serialNum: number;
+
+ /** BatchMessage data. */
+ public data?: (meerkat.IBatchChunk|null);
+
+ /**
+ * Creates a new BatchMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BatchMessage instance
+ */
+ public static create(properties?: meerkat.IBatchMessage): meerkat.BatchMessage;
+
+ /**
+ * Encodes the specified BatchMessage message. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages.
+ * @param message BatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BatchMessage message, length delimited. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages.
+ * @param message BatchMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBatchMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BatchMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchMessage;
+
+ /**
+ * Decodes a BatchMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchMessage;
+
+ /**
+ * Verifies a BatchMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BatchMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BatchMessage;
+
+ /**
+ * Creates a plain object from a BatchMessage message. Also converts values to other types if specified.
+ * @param message BatchMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BatchMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BatchMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SingleSyncQuery. */
+ interface ISingleSyncQuery {
+
+ /** SingleSyncQuery timeOfSync */
+ timeOfSync?: google.protobuf.ITimestamp;
+
+ /** SingleSyncQuery checksum */
+ checksum?: (number|Long);
+ }
+
+ /** Represents a SingleSyncQuery. */
+ class SingleSyncQuery {
+
+ /**
+ * Constructs a new SingleSyncQuery.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISingleSyncQuery);
+
+ /** SingleSyncQuery timeOfSync. */
+ public timeOfSync?: (google.protobuf.ITimestamp|null);
+
+ /** SingleSyncQuery checksum. */
+ public checksum: (number|Long);
+
+ /**
+ * Creates a new SingleSyncQuery instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SingleSyncQuery instance
+ */
+ public static create(properties?: meerkat.ISingleSyncQuery): meerkat.SingleSyncQuery;
+
+ /**
+ * Encodes the specified SingleSyncQuery message. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages.
+ * @param message SingleSyncQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISingleSyncQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SingleSyncQuery message, length delimited. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages.
+ * @param message SingleSyncQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISingleSyncQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SingleSyncQuery message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SingleSyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SingleSyncQuery;
+
+ /**
+ * Decodes a SingleSyncQuery message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SingleSyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SingleSyncQuery;
+
+ /**
+ * Verifies a SingleSyncQuery message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SingleSyncQuery message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SingleSyncQuery
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SingleSyncQuery;
+
+ /**
+ * Creates a plain object from a SingleSyncQuery message. Also converts values to other types if specified.
+ * @param message SingleSyncQuery
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SingleSyncQuery, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SingleSyncQuery to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SyncQuery. */
+ interface ISyncQuery {
+
+ /** SyncQuery filterList */
+ filterList?: meerkat.IMessageFilterList;
+
+ /** SyncQuery query */
+ query?: meerkat.ISingleSyncQuery[];
+ }
+
+ /** Represents a SyncQuery. */
+ class SyncQuery {
+
+ /**
+ * Constructs a new SyncQuery.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISyncQuery);
+
+ /** SyncQuery filterList. */
+ public filterList?: (meerkat.IMessageFilterList|null);
+
+ /** SyncQuery query. */
+ public query: meerkat.ISingleSyncQuery[];
+
+ /**
+ * Creates a new SyncQuery instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SyncQuery instance
+ */
+ public static create(properties?: meerkat.ISyncQuery): meerkat.SyncQuery;
+
+ /**
+ * Encodes the specified SyncQuery message. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages.
+ * @param message SyncQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISyncQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SyncQuery message, length delimited. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages.
+ * @param message SyncQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISyncQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SyncQuery message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SyncQuery;
+
+ /**
+ * Decodes a SyncQuery message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SyncQuery;
+
+ /**
+ * Verifies a SyncQuery message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SyncQuery message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SyncQuery
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SyncQuery;
+
+ /**
+ * Creates a plain object from a SyncQuery message. Also converts values to other types if specified.
+ * @param message SyncQuery
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SyncQuery, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SyncQuery to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a GenerateSyncQueryParams. */
+ interface IGenerateSyncQueryParams {
+
+ /** GenerateSyncQueryParams filterList */
+ filterList?: meerkat.IMessageFilterList;
+
+ /** GenerateSyncQueryParams breakpointList */
+ breakpointList?: number[];
+ }
+
+ /** Represents a GenerateSyncQueryParams. */
+ class GenerateSyncQueryParams {
+
+ /**
+ * Constructs a new GenerateSyncQueryParams.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IGenerateSyncQueryParams);
+
+ /** GenerateSyncQueryParams filterList. */
+ public filterList?: (meerkat.IMessageFilterList|null);
+
+ /** GenerateSyncQueryParams breakpointList. */
+ public breakpointList: number[];
+
+ /**
+ * Creates a new GenerateSyncQueryParams instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GenerateSyncQueryParams instance
+ */
+ public static create(properties?: meerkat.IGenerateSyncQueryParams): meerkat.GenerateSyncQueryParams;
+
+ /**
+ * Encodes the specified GenerateSyncQueryParams message. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages.
+ * @param message GenerateSyncQueryParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IGenerateSyncQueryParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GenerateSyncQueryParams message, length delimited. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages.
+ * @param message GenerateSyncQueryParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IGenerateSyncQueryParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GenerateSyncQueryParams message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GenerateSyncQueryParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.GenerateSyncQueryParams;
+
+ /**
+ * Decodes a GenerateSyncQueryParams message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GenerateSyncQueryParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.GenerateSyncQueryParams;
+
+ /**
+ * Verifies a GenerateSyncQueryParams message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GenerateSyncQueryParams message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GenerateSyncQueryParams
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.GenerateSyncQueryParams;
+
+ /**
+ * Creates a plain object from a GenerateSyncQueryParams message. Also converts values to other types if specified.
+ * @param message GenerateSyncQueryParams
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.GenerateSyncQueryParams, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GenerateSyncQueryParams to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SyncQueryResponse. */
+ interface ISyncQueryResponse {
+
+ /** SyncQueryResponse lastEntryNum */
+ lastEntryNum?: (number|Long);
+
+ /** SyncQueryResponse lastTimeOfSync */
+ lastTimeOfSync?: google.protobuf.ITimestamp;
+ }
+
+ /** Represents a SyncQueryResponse. */
+ class SyncQueryResponse {
+
+ /**
+ * Constructs a new SyncQueryResponse.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISyncQueryResponse);
+
+ /** SyncQueryResponse lastEntryNum. */
+ public lastEntryNum: (number|Long);
+
+ /** SyncQueryResponse lastTimeOfSync. */
+ public lastTimeOfSync?: (google.protobuf.ITimestamp|null);
+
+ /**
+ * Creates a new SyncQueryResponse instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SyncQueryResponse instance
+ */
+ public static create(properties?: meerkat.ISyncQueryResponse): meerkat.SyncQueryResponse;
+
+ /**
+ * Encodes the specified SyncQueryResponse message. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages.
+ * @param message SyncQueryResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISyncQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SyncQueryResponse message, length delimited. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages.
+ * @param message SyncQueryResponse message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISyncQueryResponse, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SyncQueryResponse message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SyncQueryResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SyncQueryResponse;
+
+ /**
+ * Decodes a SyncQueryResponse message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SyncQueryResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SyncQueryResponse;
+
+ /**
+ * Verifies a SyncQueryResponse message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SyncQueryResponse message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SyncQueryResponse
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SyncQueryResponse;
+
+ /**
+ * Creates a plain object from a SyncQueryResponse message. Also converts values to other types if specified.
+ * @param message SyncQueryResponse
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SyncQueryResponse, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SyncQueryResponse to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BatchQuery. */
+ interface IBatchQuery {
+
+ /** BatchQuery msgID */
+ msgID?: meerkat.IMessageID;
+
+ /** BatchQuery startPosition */
+ startPosition?: number;
+ }
+
+ /** Represents a BatchQuery. */
+ class BatchQuery {
+
+ /**
+ * Constructs a new BatchQuery.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBatchQuery);
+
+ /** BatchQuery msgID. */
+ public msgID?: (meerkat.IMessageID|null);
+
+ /** BatchQuery startPosition. */
+ public startPosition: number;
+
+ /**
+ * Creates a new BatchQuery instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BatchQuery instance
+ */
+ public static create(properties?: meerkat.IBatchQuery): meerkat.BatchQuery;
+
+ /**
+ * Encodes the specified BatchQuery message. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages.
+ * @param message BatchQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBatchQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BatchQuery message, length delimited. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages.
+ * @param message BatchQuery message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBatchQuery, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BatchQuery message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BatchQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BatchQuery;
+
+ /**
+ * Decodes a BatchQuery message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BatchQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BatchQuery;
+
+ /**
+ * Verifies a BatchQuery message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BatchQuery message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BatchQuery
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BatchQuery;
+
+ /**
+ * Creates a plain object from a BatchQuery message. Also converts values to other types if specified.
+ * @param message BatchQuery
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BatchQuery, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BatchQuery to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ServerStatus. */
+ interface IServerStatus {
+
+ /** ServerStatus mode */
+ mode?: meerkat.ServerStatus.Mode;
+
+ /** ServerStatus name */
+ name?: string;
+
+ /** ServerStatus pk */
+ pk?: meerkat.ISignatureVerificationKey;
+ }
+
+ /** Represents a ServerStatus. */
+ class ServerStatus {
+
+ /**
+ * Constructs a new ServerStatus.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IServerStatus);
+
+ /** ServerStatus mode. */
+ public mode: meerkat.ServerStatus.Mode;
+
+ /** ServerStatus name. */
+ public name: string;
+
+ /** ServerStatus pk. */
+ public pk?: (meerkat.ISignatureVerificationKey|null);
+
+ /**
+ * Creates a new ServerStatus instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ServerStatus instance
+ */
+ public static create(properties?: meerkat.IServerStatus): meerkat.ServerStatus;
+
+ /**
+ * Encodes the specified ServerStatus message. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages.
+ * @param message ServerStatus message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IServerStatus, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ServerStatus message, length delimited. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages.
+ * @param message ServerStatus message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IServerStatus, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ServerStatus message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ServerStatus
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ServerStatus;
+
+ /**
+ * Decodes a ServerStatus message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ServerStatus
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ServerStatus;
+
+ /**
+ * Verifies a ServerStatus message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ServerStatus message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ServerStatus
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ServerStatus;
+
+ /**
+ * Creates a plain object from a ServerStatus message. Also converts values to other types if specified.
+ * @param message ServerStatus
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ServerStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ServerStatus to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ namespace ServerStatus {
+
+ /** Mode enum. */
+ enum Mode {
+ MODE_SETUP_AUTH = 0,
+ MODE_SETUP_DB = 1,
+ MODE_RUNNING = 2
+ }
+ }
+
+ /** Properties of a BroadcastMessage. */
+ interface IBroadcastMessage {
+
+ /** BroadcastMessage sender */
+ sender?: number;
+
+ /** BroadcastMessage destination */
+ destination?: number;
+
+ /** BroadcastMessage isPrivate */
+ isPrivate?: boolean;
+
+ /** BroadcastMessage payload */
+ payload?: Uint8Array;
+ }
+
+ /** Represents a BroadcastMessage. */
+ class BroadcastMessage {
+
+ /**
+ * Constructs a new BroadcastMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBroadcastMessage);
+
+ /** BroadcastMessage sender. */
+ public sender: number;
+
+ /** BroadcastMessage destination. */
+ public destination: number;
+
+ /** BroadcastMessage isPrivate. */
+ public isPrivate: boolean;
+
+ /** BroadcastMessage payload. */
+ public payload: Uint8Array;
+
+ /**
+ * Creates a new BroadcastMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BroadcastMessage instance
+ */
+ public static create(properties?: meerkat.IBroadcastMessage): meerkat.BroadcastMessage;
+
+ /**
+ * Encodes the specified BroadcastMessage message. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages.
+ * @param message BroadcastMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBroadcastMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BroadcastMessage message, length delimited. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages.
+ * @param message BroadcastMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBroadcastMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BroadcastMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BroadcastMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BroadcastMessage;
+
+ /**
+ * Decodes a BroadcastMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BroadcastMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BroadcastMessage;
+
+ /**
+ * Verifies a BroadcastMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BroadcastMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BroadcastMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BroadcastMessage;
+
+ /**
+ * Creates a plain object from a BroadcastMessage message. Also converts values to other types if specified.
+ * @param message BroadcastMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BroadcastMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BroadcastMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an ElGamalPublicKey. */
+ interface IElGamalPublicKey {
+
+ /** ElGamalPublicKey subjectPublicKeyInfo */
+ subjectPublicKeyInfo?: Uint8Array;
+ }
+
+ /** Represents an ElGamalPublicKey. */
+ class ElGamalPublicKey {
+
+ /**
+ * Constructs a new ElGamalPublicKey.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IElGamalPublicKey);
+
+ /** ElGamalPublicKey subjectPublicKeyInfo. */
+ public subjectPublicKeyInfo: Uint8Array;
+
+ /**
+ * Creates a new ElGamalPublicKey instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ElGamalPublicKey instance
+ */
+ public static create(properties?: meerkat.IElGamalPublicKey): meerkat.ElGamalPublicKey;
+
+ /**
+ * Encodes the specified ElGamalPublicKey message. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages.
+ * @param message ElGamalPublicKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IElGamalPublicKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ElGamalPublicKey message, length delimited. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages.
+ * @param message ElGamalPublicKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IElGamalPublicKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an ElGamalPublicKey message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ElGamalPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElGamalPublicKey;
+
+ /**
+ * Decodes an ElGamalPublicKey message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ElGamalPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElGamalPublicKey;
+
+ /**
+ * Verifies an ElGamalPublicKey message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an ElGamalPublicKey message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ElGamalPublicKey
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ElGamalPublicKey;
+
+ /**
+ * Creates a plain object from an ElGamalPublicKey message. Also converts values to other types if specified.
+ * @param message ElGamalPublicKey
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ElGamalPublicKey, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ElGamalPublicKey to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a GroupElement. */
+ interface IGroupElement {
+
+ /** GroupElement data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a GroupElement. */
+ class GroupElement {
+
+ /**
+ * Constructs a new GroupElement.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IGroupElement);
+
+ /** GroupElement data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new GroupElement instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns GroupElement instance
+ */
+ public static create(properties?: meerkat.IGroupElement): meerkat.GroupElement;
+
+ /**
+ * Encodes the specified GroupElement message. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages.
+ * @param message GroupElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IGroupElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified GroupElement message, length delimited. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages.
+ * @param message GroupElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IGroupElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a GroupElement message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns GroupElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.GroupElement;
+
+ /**
+ * Decodes a GroupElement message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns GroupElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.GroupElement;
+
+ /**
+ * Verifies a GroupElement message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a GroupElement message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns GroupElement
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.GroupElement;
+
+ /**
+ * Creates a plain object from a GroupElement message. Also converts values to other types if specified.
+ * @param message GroupElement
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.GroupElement, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this GroupElement to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an ElGamalCiphertext. */
+ interface IElGamalCiphertext {
+
+ /** ElGamalCiphertext c1 */
+ c1?: meerkat.IGroupElement;
+
+ /** ElGamalCiphertext c2 */
+ c2?: meerkat.IGroupElement;
+ }
+
+ /** Represents an ElGamalCiphertext. */
+ class ElGamalCiphertext {
+
+ /**
+ * Constructs a new ElGamalCiphertext.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IElGamalCiphertext);
+
+ /** ElGamalCiphertext c1. */
+ public c1?: (meerkat.IGroupElement|null);
+
+ /** ElGamalCiphertext c2. */
+ public c2?: (meerkat.IGroupElement|null);
+
+ /**
+ * Creates a new ElGamalCiphertext instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ElGamalCiphertext instance
+ */
+ public static create(properties?: meerkat.IElGamalCiphertext): meerkat.ElGamalCiphertext;
+
+ /**
+ * Encodes the specified ElGamalCiphertext message. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages.
+ * @param message ElGamalCiphertext message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IElGamalCiphertext, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ElGamalCiphertext message, length delimited. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages.
+ * @param message ElGamalCiphertext message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IElGamalCiphertext, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an ElGamalCiphertext message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ElGamalCiphertext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElGamalCiphertext;
+
+ /**
+ * Decodes an ElGamalCiphertext message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ElGamalCiphertext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElGamalCiphertext;
+
+ /**
+ * Verifies an ElGamalCiphertext message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an ElGamalCiphertext message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ElGamalCiphertext
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ElGamalCiphertext;
+
+ /**
+ * Creates a plain object from an ElGamalCiphertext message. Also converts values to other types if specified.
+ * @param message ElGamalCiphertext
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ElGamalCiphertext, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ElGamalCiphertext to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** SignatureType enum. */
+ enum SignatureType {
+ ECDSA = 0,
+ DSA = 1,
+ RSA = 2
+ }
+
+ /** Properties of a BigInteger. */
+ interface IBigInteger {
+
+ /** BigInteger data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a BigInteger. */
+ class BigInteger {
+
+ /**
+ * Constructs a new BigInteger.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBigInteger);
+
+ /** BigInteger data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new BigInteger instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BigInteger instance
+ */
+ public static create(properties?: meerkat.IBigInteger): meerkat.BigInteger;
+
+ /**
+ * Encodes the specified BigInteger message. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages.
+ * @param message BigInteger message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBigInteger, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BigInteger message, length delimited. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages.
+ * @param message BigInteger message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBigInteger, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BigInteger message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BigInteger
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BigInteger;
+
+ /**
+ * Decodes a BigInteger message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BigInteger
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BigInteger;
+
+ /**
+ * Verifies a BigInteger message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BigInteger message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BigInteger
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BigInteger;
+
+ /**
+ * Creates a plain object from a BigInteger message. Also converts values to other types if specified.
+ * @param message BigInteger
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BigInteger, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BigInteger to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Signature. */
+ interface ISignature {
+
+ /** Signature type */
+ type?: meerkat.SignatureType;
+
+ /** Signature data */
+ data?: Uint8Array;
+
+ /** Signature signerId */
+ signerId?: Uint8Array;
+ }
+
+ /** Represents a Signature. */
+ class Signature {
+
+ /**
+ * Constructs a new Signature.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISignature);
+
+ /** Signature type. */
+ public type: meerkat.SignatureType;
+
+ /** Signature data. */
+ public data: Uint8Array;
+
+ /** Signature signerId. */
+ public signerId: Uint8Array;
+
+ /**
+ * Creates a new Signature instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Signature instance
+ */
+ public static create(properties?: meerkat.ISignature): meerkat.Signature;
+
+ /**
+ * Encodes the specified Signature message. Does not implicitly {@link meerkat.Signature.verify|verify} messages.
+ * @param message Signature message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISignature, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Signature message, length delimited. Does not implicitly {@link meerkat.Signature.verify|verify} messages.
+ * @param message Signature message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISignature, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Signature message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Signature
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Signature;
+
+ /**
+ * Decodes a Signature message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Signature
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Signature;
+
+ /**
+ * Verifies a Signature message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Signature message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Signature
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Signature;
+
+ /**
+ * Creates a plain object from a Signature message. Also converts values to other types if specified.
+ * @param message Signature
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Signature, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Signature to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SignatureVerificationKey. */
+ interface ISignatureVerificationKey {
+
+ /** SignatureVerificationKey type */
+ type?: meerkat.SignatureType;
+
+ /** SignatureVerificationKey data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a SignatureVerificationKey. */
+ class SignatureVerificationKey {
+
+ /**
+ * Constructs a new SignatureVerificationKey.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISignatureVerificationKey);
+
+ /** SignatureVerificationKey type. */
+ public type: meerkat.SignatureType;
+
+ /** SignatureVerificationKey data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new SignatureVerificationKey instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SignatureVerificationKey instance
+ */
+ public static create(properties?: meerkat.ISignatureVerificationKey): meerkat.SignatureVerificationKey;
+
+ /**
+ * Encodes the specified SignatureVerificationKey message. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages.
+ * @param message SignatureVerificationKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISignatureVerificationKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SignatureVerificationKey message, length delimited. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages.
+ * @param message SignatureVerificationKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISignatureVerificationKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SignatureVerificationKey message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SignatureVerificationKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignatureVerificationKey;
+
+ /**
+ * Decodes a SignatureVerificationKey message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SignatureVerificationKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignatureVerificationKey;
+
+ /**
+ * Verifies a SignatureVerificationKey message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SignatureVerificationKey message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SignatureVerificationKey
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SignatureVerificationKey;
+
+ /**
+ * Creates a plain object from a SignatureVerificationKey message. Also converts values to other types if specified.
+ * @param message SignatureVerificationKey
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SignatureVerificationKey, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SignatureVerificationKey to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an EncryptionPublicKey. */
+ interface IEncryptionPublicKey {
+
+ /** EncryptionPublicKey data */
+ data?: Uint8Array;
+ }
+
+ /** Represents an EncryptionPublicKey. */
+ class EncryptionPublicKey {
+
+ /**
+ * Constructs a new EncryptionPublicKey.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IEncryptionPublicKey);
+
+ /** EncryptionPublicKey data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new EncryptionPublicKey instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns EncryptionPublicKey instance
+ */
+ public static create(properties?: meerkat.IEncryptionPublicKey): meerkat.EncryptionPublicKey;
+
+ /**
+ * Encodes the specified EncryptionPublicKey message. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages.
+ * @param message EncryptionPublicKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IEncryptionPublicKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified EncryptionPublicKey message, length delimited. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages.
+ * @param message EncryptionPublicKey message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IEncryptionPublicKey, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an EncryptionPublicKey message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns EncryptionPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptionPublicKey;
+
+ /**
+ * Decodes an EncryptionPublicKey message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns EncryptionPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptionPublicKey;
+
+ /**
+ * Verifies an EncryptionPublicKey message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an EncryptionPublicKey message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns EncryptionPublicKey
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.EncryptionPublicKey;
+
+ /**
+ * Creates a plain object from an EncryptionPublicKey message. Also converts values to other types if specified.
+ * @param message EncryptionPublicKey
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.EncryptionPublicKey, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this EncryptionPublicKey to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an EncryptionRandomness. */
+ interface IEncryptionRandomness {
+
+ /** EncryptionRandomness data */
+ data?: Uint8Array;
+ }
+
+ /** Represents an EncryptionRandomness. */
+ class EncryptionRandomness {
+
+ /**
+ * Constructs a new EncryptionRandomness.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IEncryptionRandomness);
+
+ /** EncryptionRandomness data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new EncryptionRandomness instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns EncryptionRandomness instance
+ */
+ public static create(properties?: meerkat.IEncryptionRandomness): meerkat.EncryptionRandomness;
+
+ /**
+ * Encodes the specified EncryptionRandomness message. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages.
+ * @param message EncryptionRandomness message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IEncryptionRandomness, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified EncryptionRandomness message, length delimited. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages.
+ * @param message EncryptionRandomness message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IEncryptionRandomness, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an EncryptionRandomness message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns EncryptionRandomness
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptionRandomness;
+
+ /**
+ * Decodes an EncryptionRandomness message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns EncryptionRandomness
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptionRandomness;
+
+ /**
+ * Verifies an EncryptionRandomness message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an EncryptionRandomness message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns EncryptionRandomness
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.EncryptionRandomness;
+
+ /**
+ * Creates a plain object from an EncryptionRandomness message. Also converts values to other types if specified.
+ * @param message EncryptionRandomness
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.EncryptionRandomness, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this EncryptionRandomness to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a RandomnessGenerationProof. */
+ interface IRandomnessGenerationProof {
+
+ /** RandomnessGenerationProof data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a RandomnessGenerationProof. */
+ class RandomnessGenerationProof {
+
+ /**
+ * Constructs a new RandomnessGenerationProof.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IRandomnessGenerationProof);
+
+ /** RandomnessGenerationProof data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new RandomnessGenerationProof instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns RandomnessGenerationProof instance
+ */
+ public static create(properties?: meerkat.IRandomnessGenerationProof): meerkat.RandomnessGenerationProof;
+
+ /**
+ * Encodes the specified RandomnessGenerationProof message. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages.
+ * @param message RandomnessGenerationProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IRandomnessGenerationProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified RandomnessGenerationProof message, length delimited. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages.
+ * @param message RandomnessGenerationProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IRandomnessGenerationProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a RandomnessGenerationProof message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns RandomnessGenerationProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.RandomnessGenerationProof;
+
+ /**
+ * Decodes a RandomnessGenerationProof message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns RandomnessGenerationProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.RandomnessGenerationProof;
+
+ /**
+ * Verifies a RandomnessGenerationProof message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a RandomnessGenerationProof message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns RandomnessGenerationProof
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.RandomnessGenerationProof;
+
+ /**
+ * Creates a plain object from a RandomnessGenerationProof message. Also converts values to other types if specified.
+ * @param message RandomnessGenerationProof
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.RandomnessGenerationProof, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this RandomnessGenerationProof to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a RerandomizableEncryptedMessage. */
+ interface IRerandomizableEncryptedMessage {
+
+ /** RerandomizableEncryptedMessage data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a RerandomizableEncryptedMessage. */
+ class RerandomizableEncryptedMessage {
+
+ /**
+ * Constructs a new RerandomizableEncryptedMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IRerandomizableEncryptedMessage);
+
+ /** RerandomizableEncryptedMessage data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new RerandomizableEncryptedMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns RerandomizableEncryptedMessage instance
+ */
+ public static create(properties?: meerkat.IRerandomizableEncryptedMessage): meerkat.RerandomizableEncryptedMessage;
+
+ /**
+ * Encodes the specified RerandomizableEncryptedMessage message. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages.
+ * @param message RerandomizableEncryptedMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IRerandomizableEncryptedMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified RerandomizableEncryptedMessage message, length delimited. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages.
+ * @param message RerandomizableEncryptedMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IRerandomizableEncryptedMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns RerandomizableEncryptedMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.RerandomizableEncryptedMessage;
+
+ /**
+ * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns RerandomizableEncryptedMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.RerandomizableEncryptedMessage;
+
+ /**
+ * Verifies a RerandomizableEncryptedMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a RerandomizableEncryptedMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns RerandomizableEncryptedMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.RerandomizableEncryptedMessage;
+
+ /**
+ * Creates a plain object from a RerandomizableEncryptedMessage message. Also converts values to other types if specified.
+ * @param message RerandomizableEncryptedMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.RerandomizableEncryptedMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this RerandomizableEncryptedMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Payload. */
+ interface IPayload {
+
+ /** Payload type */
+ type?: meerkat.Payload.Type;
+
+ /** Payload id */
+ id?: meerkat.IIDMessage;
+
+ /** Payload share */
+ share?: meerkat.IShareMessage;
+
+ /** Payload commitment */
+ commitment?: meerkat.ICommitmentMessage;
+ }
+
+ /** Represents a Payload. */
+ class Payload {
+
+ /**
+ * Constructs a new Payload.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IPayload);
+
+ /** Payload type. */
+ public type: meerkat.Payload.Type;
+
+ /** Payload id. */
+ public id?: (meerkat.IIDMessage|null);
+
+ /** Payload share. */
+ public share?: (meerkat.IShareMessage|null);
+
+ /** Payload commitment. */
+ public commitment?: (meerkat.ICommitmentMessage|null);
+
+ /** Payload payloadData. */
+ public payloadData?: string;
+
+ /**
+ * Creates a new Payload instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Payload instance
+ */
+ public static create(properties?: meerkat.IPayload): meerkat.Payload;
+
+ /**
+ * Encodes the specified Payload message. Does not implicitly {@link meerkat.Payload.verify|verify} messages.
+ * @param message Payload message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IPayload, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Payload message, length delimited. Does not implicitly {@link meerkat.Payload.verify|verify} messages.
+ * @param message Payload message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IPayload, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Payload message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Payload
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Payload;
+
+ /**
+ * Decodes a Payload message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Payload
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Payload;
+
+ /**
+ * Verifies a Payload message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Payload message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Payload
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Payload;
+
+ /**
+ * Creates a plain object from a Payload message. Also converts values to other types if specified.
+ * @param message Payload
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Payload, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Payload to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ namespace Payload {
+
+ /** Type enum. */
+ enum Type {
+ SHARE = 0,
+ COMMITMENT = 1,
+ COMPLAINT = 2,
+ DONE = 3,
+ ANSWER = 4,
+ YCOMMITMENT = 5,
+ YCOMPLAINT = 6,
+ YANSWER = 7,
+ ABORT = 8
+ }
+ }
+
+ /** Properties of a IDMessage. */
+ interface IIDMessage {
+
+ /** IDMessage id */
+ id?: number;
+ }
+
+ /** Represents a IDMessage. */
+ class IDMessage {
+
+ /**
+ * Constructs a new IDMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IIDMessage);
+
+ /** IDMessage id. */
+ public id: number;
+
+ /**
+ * Creates a new IDMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns IDMessage instance
+ */
+ public static create(properties?: meerkat.IIDMessage): meerkat.IDMessage;
+
+ /**
+ * Encodes the specified IDMessage message. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages.
+ * @param message IDMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IIDMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified IDMessage message, length delimited. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages.
+ * @param message IDMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IIDMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a IDMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns IDMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.IDMessage;
+
+ /**
+ * Decodes a IDMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns IDMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.IDMessage;
+
+ /**
+ * Verifies a IDMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a IDMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns IDMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.IDMessage;
+
+ /**
+ * Creates a plain object from a IDMessage message. Also converts values to other types if specified.
+ * @param message IDMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.IDMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this IDMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ShareMessage. */
+ interface IShareMessage {
+
+ /** ShareMessage i */
+ i?: number;
+
+ /** ShareMessage j */
+ j?: number;
+
+ /** ShareMessage share */
+ share?: Uint8Array;
+
+ /** ShareMessage shareT */
+ shareT?: Uint8Array;
+ }
+
+ /** Represents a ShareMessage. */
+ class ShareMessage {
+
+ /**
+ * Constructs a new ShareMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IShareMessage);
+
+ /** ShareMessage i. */
+ public i: number;
+
+ /** ShareMessage j. */
+ public j: number;
+
+ /** ShareMessage share. */
+ public share: Uint8Array;
+
+ /** ShareMessage shareT. */
+ public shareT: Uint8Array;
+
+ /**
+ * Creates a new ShareMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ShareMessage instance
+ */
+ public static create(properties?: meerkat.IShareMessage): meerkat.ShareMessage;
+
+ /**
+ * Encodes the specified ShareMessage message. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages.
+ * @param message ShareMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IShareMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ShareMessage message, length delimited. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages.
+ * @param message ShareMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IShareMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ShareMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ShareMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ShareMessage;
+
+ /**
+ * Decodes a ShareMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ShareMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ShareMessage;
+
+ /**
+ * Verifies a ShareMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ShareMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ShareMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ShareMessage;
+
+ /**
+ * Creates a plain object from a ShareMessage message. Also converts values to other types if specified.
+ * @param message ShareMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ShareMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ShareMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a CommitmentMessage. */
+ interface ICommitmentMessage {
+
+ /** CommitmentMessage k */
+ k?: number;
+
+ /** CommitmentMessage commitment */
+ commitment?: Uint8Array;
+ }
+
+ /** Represents a CommitmentMessage. */
+ class CommitmentMessage {
+
+ /**
+ * Constructs a new CommitmentMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ICommitmentMessage);
+
+ /** CommitmentMessage k. */
+ public k: number;
+
+ /** CommitmentMessage commitment. */
+ public commitment: Uint8Array;
+
+ /**
+ * Creates a new CommitmentMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns CommitmentMessage instance
+ */
+ public static create(properties?: meerkat.ICommitmentMessage): meerkat.CommitmentMessage;
+
+ /**
+ * Encodes the specified CommitmentMessage message. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages.
+ * @param message CommitmentMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ICommitmentMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified CommitmentMessage message, length delimited. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages.
+ * @param message CommitmentMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ICommitmentMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a CommitmentMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns CommitmentMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CommitmentMessage;
+
+ /**
+ * Decodes a CommitmentMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns CommitmentMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CommitmentMessage;
+
+ /**
+ * Verifies a CommitmentMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a CommitmentMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns CommitmentMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.CommitmentMessage;
+
+ /**
+ * Creates a plain object from a CommitmentMessage message. Also converts values to other types if specified.
+ * @param message CommitmentMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.CommitmentMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this CommitmentMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a MixBatchHeader. */
+ interface IMixBatchHeader {
+
+ /** MixBatchHeader logN */
+ logN?: number;
+
+ /** MixBatchHeader layers */
+ layers?: number;
+ }
+
+ /** Represents a MixBatchHeader. */
+ class MixBatchHeader {
+
+ /**
+ * Constructs a new MixBatchHeader.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IMixBatchHeader);
+
+ /** MixBatchHeader logN. */
+ public logN: number;
+
+ /** MixBatchHeader layers. */
+ public layers: number;
+
+ /**
+ * Creates a new MixBatchHeader instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns MixBatchHeader instance
+ */
+ public static create(properties?: meerkat.IMixBatchHeader): meerkat.MixBatchHeader;
+
+ /**
+ * Encodes the specified MixBatchHeader message. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages.
+ * @param message MixBatchHeader message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IMixBatchHeader, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified MixBatchHeader message, length delimited. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages.
+ * @param message MixBatchHeader message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IMixBatchHeader, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a MixBatchHeader message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns MixBatchHeader
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.MixBatchHeader;
+
+ /**
+ * Decodes a MixBatchHeader message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns MixBatchHeader
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.MixBatchHeader;
+
+ /**
+ * Verifies a MixBatchHeader message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a MixBatchHeader message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns MixBatchHeader
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.MixBatchHeader;
+
+ /**
+ * Creates a plain object from a MixBatchHeader message. Also converts values to other types if specified.
+ * @param message MixBatchHeader
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.MixBatchHeader, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this MixBatchHeader to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Plaintext. */
+ interface IPlaintext {
+
+ /** Plaintext data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a Plaintext. */
+ class Plaintext {
+
+ /**
+ * Constructs a new Plaintext.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IPlaintext);
+
+ /** Plaintext data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new Plaintext instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Plaintext instance
+ */
+ public static create(properties?: meerkat.IPlaintext): meerkat.Plaintext;
+
+ /**
+ * Encodes the specified Plaintext message. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages.
+ * @param message Plaintext message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IPlaintext, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Plaintext message, length delimited. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages.
+ * @param message Plaintext message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IPlaintext, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Plaintext message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Plaintext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Plaintext;
+
+ /**
+ * Decodes a Plaintext message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Plaintext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Plaintext;
+
+ /**
+ * Verifies a Plaintext message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Plaintext message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Plaintext
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Plaintext;
+
+ /**
+ * Creates a plain object from a Plaintext message. Also converts values to other types if specified.
+ * @param message Plaintext
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Plaintext, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Plaintext to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Mix2Proof. */
+ interface IMix2Proof {
+
+ /** Mix2Proof firstMessage */
+ firstMessage?: meerkat.Mix2Proof.IFirstMessage;
+
+ /** Mix2Proof finalMessage */
+ finalMessage?: meerkat.Mix2Proof.IFinalMessage;
+
+ /** Mix2Proof location */
+ location?: meerkat.Mix2Proof.ILocation;
+ }
+
+ /** Represents a Mix2Proof. */
+ class Mix2Proof {
+
+ /**
+ * Constructs a new Mix2Proof.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IMix2Proof);
+
+ /** Mix2Proof firstMessage. */
+ public firstMessage?: (meerkat.Mix2Proof.IFirstMessage|null);
+
+ /** Mix2Proof finalMessage. */
+ public finalMessage?: (meerkat.Mix2Proof.IFinalMessage|null);
+
+ /** Mix2Proof location. */
+ public location?: (meerkat.Mix2Proof.ILocation|null);
+
+ /**
+ * Creates a new Mix2Proof instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Mix2Proof instance
+ */
+ public static create(properties?: meerkat.IMix2Proof): meerkat.Mix2Proof;
+
+ /**
+ * Encodes the specified Mix2Proof message. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages.
+ * @param message Mix2Proof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IMix2Proof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Mix2Proof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages.
+ * @param message Mix2Proof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IMix2Proof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Mix2Proof message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Mix2Proof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof;
+
+ /**
+ * Decodes a Mix2Proof message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Mix2Proof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof;
+
+ /**
+ * Verifies a Mix2Proof message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Mix2Proof message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Mix2Proof
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof;
+
+ /**
+ * Creates a plain object from a Mix2Proof message. Also converts values to other types if specified.
+ * @param message Mix2Proof
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Mix2Proof to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ namespace Mix2Proof {
+
+ /** Properties of a DlogProof. */
+ interface IDlogProof {
+ }
+
+ /** Represents a DlogProof. */
+ class DlogProof {
+
+ /**
+ * Constructs a new DlogProof.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.IDlogProof);
+
+ /**
+ * Creates a new DlogProof instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns DlogProof instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.IDlogProof): meerkat.Mix2Proof.DlogProof;
+
+ /**
+ * Encodes the specified DlogProof message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages.
+ * @param message DlogProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.IDlogProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified DlogProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages.
+ * @param message DlogProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.IDlogProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a DlogProof message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns DlogProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof;
+
+ /**
+ * Decodes a DlogProof message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns DlogProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof;
+
+ /**
+ * Verifies a DlogProof message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a DlogProof message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns DlogProof
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof;
+
+ /**
+ * Creates a plain object from a DlogProof message. Also converts values to other types if specified.
+ * @param message DlogProof
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.DlogProof, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this DlogProof to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ namespace DlogProof {
+
+ /** Properties of a FirstMessage. */
+ interface IFirstMessage {
+
+ /** FirstMessage gr */
+ gr?: meerkat.IGroupElement;
+
+ /** FirstMessage hr */
+ hr?: meerkat.IGroupElement;
+ }
+
+ /** Represents a FirstMessage. */
+ class FirstMessage {
+
+ /**
+ * Constructs a new FirstMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.DlogProof.IFirstMessage);
+
+ /** FirstMessage gr. */
+ public gr?: (meerkat.IGroupElement|null);
+
+ /** FirstMessage hr. */
+ public hr?: (meerkat.IGroupElement|null);
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FirstMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.DlogProof.IFirstMessage): meerkat.Mix2Proof.DlogProof.FirstMessage;
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.DlogProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.DlogProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof.FirstMessage;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof.FirstMessage;
+
+ /**
+ * Verifies a FirstMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FirstMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof.FirstMessage;
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @param message FirstMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.DlogProof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a FinalMessage. */
+ interface IFinalMessage {
+
+ /** FinalMessage xcr */
+ xcr?: meerkat.IBigInteger;
+ }
+
+ /** Represents a FinalMessage. */
+ class FinalMessage {
+
+ /**
+ * Constructs a new FinalMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.DlogProof.IFinalMessage);
+
+ /** FinalMessage xcr. */
+ public xcr?: (meerkat.IBigInteger|null);
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FinalMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.DlogProof.IFinalMessage): meerkat.Mix2Proof.DlogProof.FinalMessage;
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.DlogProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.DlogProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.DlogProof.FinalMessage;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.DlogProof.FinalMessage;
+
+ /**
+ * Verifies a FinalMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FinalMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.DlogProof.FinalMessage;
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @param message FinalMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.DlogProof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+ }
+
+ /** Properties of an AndProof. */
+ interface IAndProof {
+ }
+
+ /** Represents an AndProof. */
+ class AndProof {
+
+ /**
+ * Constructs a new AndProof.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.IAndProof);
+
+ /**
+ * Creates a new AndProof instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns AndProof instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.IAndProof): meerkat.Mix2Proof.AndProof;
+
+ /**
+ * Encodes the specified AndProof message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages.
+ * @param message AndProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.IAndProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified AndProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages.
+ * @param message AndProof message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.IAndProof, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an AndProof message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns AndProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof;
+
+ /**
+ * Decodes an AndProof message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns AndProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof;
+
+ /**
+ * Verifies an AndProof message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an AndProof message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns AndProof
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof;
+
+ /**
+ * Creates a plain object from an AndProof message. Also converts values to other types if specified.
+ * @param message AndProof
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.AndProof, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this AndProof to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ namespace AndProof {
+
+ /** Properties of a FirstMessage. */
+ interface IFirstMessage {
+
+ /** FirstMessage clause0 */
+ clause0?: meerkat.Mix2Proof.DlogProof.IFirstMessage;
+
+ /** FirstMessage clause1 */
+ clause1?: meerkat.Mix2Proof.DlogProof.IFirstMessage;
+ }
+
+ /** Represents a FirstMessage. */
+ class FirstMessage {
+
+ /**
+ * Constructs a new FirstMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.AndProof.IFirstMessage);
+
+ /** FirstMessage clause0. */
+ public clause0?: (meerkat.Mix2Proof.DlogProof.IFirstMessage|null);
+
+ /** FirstMessage clause1. */
+ public clause1?: (meerkat.Mix2Proof.DlogProof.IFirstMessage|null);
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FirstMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.AndProof.IFirstMessage): meerkat.Mix2Proof.AndProof.FirstMessage;
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.AndProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.AndProof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof.FirstMessage;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof.FirstMessage;
+
+ /**
+ * Verifies a FirstMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FirstMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof.FirstMessage;
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @param message FirstMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.AndProof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a FinalMessage. */
+ interface IFinalMessage {
+
+ /** FinalMessage clause0 */
+ clause0?: meerkat.Mix2Proof.DlogProof.IFinalMessage;
+
+ /** FinalMessage clause1 */
+ clause1?: meerkat.Mix2Proof.DlogProof.IFinalMessage;
+ }
+
+ /** Represents a FinalMessage. */
+ class FinalMessage {
+
+ /**
+ * Constructs a new FinalMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.AndProof.IFinalMessage);
+
+ /** FinalMessage clause0. */
+ public clause0?: (meerkat.Mix2Proof.DlogProof.IFinalMessage|null);
+
+ /** FinalMessage clause1. */
+ public clause1?: (meerkat.Mix2Proof.DlogProof.IFinalMessage|null);
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FinalMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.AndProof.IFinalMessage): meerkat.Mix2Proof.AndProof.FinalMessage;
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.AndProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.AndProof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.AndProof.FinalMessage;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.AndProof.FinalMessage;
+
+ /**
+ * Verifies a FinalMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FinalMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.AndProof.FinalMessage;
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @param message FinalMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.AndProof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+ }
+
+ /** Properties of a FirstMessage. */
+ interface IFirstMessage {
+
+ /** FirstMessage clause0 */
+ clause0?: meerkat.Mix2Proof.AndProof.IFirstMessage;
+
+ /** FirstMessage clause1 */
+ clause1?: meerkat.Mix2Proof.AndProof.IFirstMessage;
+ }
+
+ /** Represents a FirstMessage. */
+ class FirstMessage {
+
+ /**
+ * Constructs a new FirstMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.IFirstMessage);
+
+ /** FirstMessage clause0. */
+ public clause0?: (meerkat.Mix2Proof.AndProof.IFirstMessage|null);
+
+ /** FirstMessage clause1. */
+ public clause1?: (meerkat.Mix2Proof.AndProof.IFirstMessage|null);
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FirstMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.IFirstMessage): meerkat.Mix2Proof.FirstMessage;
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages.
+ * @param message FirstMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.IFirstMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.FirstMessage;
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.FirstMessage;
+
+ /**
+ * Verifies a FirstMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FirstMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.FirstMessage;
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @param message FirstMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.FirstMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a FinalMessage. */
+ interface IFinalMessage {
+
+ /** FinalMessage clause0 */
+ clause0?: meerkat.Mix2Proof.AndProof.IFinalMessage;
+
+ /** FinalMessage clause1 */
+ clause1?: meerkat.Mix2Proof.AndProof.IFinalMessage;
+
+ /** FinalMessage c0 */
+ c0?: meerkat.IBigInteger;
+ }
+
+ /** Represents a FinalMessage. */
+ class FinalMessage {
+
+ /**
+ * Constructs a new FinalMessage.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.IFinalMessage);
+
+ /** FinalMessage clause0. */
+ public clause0?: (meerkat.Mix2Proof.AndProof.IFinalMessage|null);
+
+ /** FinalMessage clause1. */
+ public clause1?: (meerkat.Mix2Proof.AndProof.IFinalMessage|null);
+
+ /** FinalMessage c0. */
+ public c0?: (meerkat.IBigInteger|null);
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns FinalMessage instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.IFinalMessage): meerkat.Mix2Proof.FinalMessage;
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages.
+ * @param message FinalMessage message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.IFinalMessage, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.FinalMessage;
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.FinalMessage;
+
+ /**
+ * Verifies a FinalMessage message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns FinalMessage
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.FinalMessage;
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @param message FinalMessage
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.FinalMessage, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Location. */
+ interface ILocation {
+
+ /** Location layer */
+ layer?: number;
+
+ /** Location switchIdx */
+ switchIdx?: number;
+
+ /** Location out0 */
+ out0?: number;
+
+ /** Location out1 */
+ out1?: number;
+ }
+
+ /** Represents a Location. */
+ class Location {
+
+ /**
+ * Constructs a new Location.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.Mix2Proof.ILocation);
+
+ /** Location layer. */
+ public layer: number;
+
+ /** Location switchIdx. */
+ public switchIdx: number;
+
+ /** Location out0. */
+ public out0: number;
+
+ /** Location out1. */
+ public out1: number;
+
+ /**
+ * Creates a new Location instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Location instance
+ */
+ public static create(properties?: meerkat.Mix2Proof.ILocation): meerkat.Mix2Proof.Location;
+
+ /**
+ * Encodes the specified Location message. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages.
+ * @param message Location message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.Mix2Proof.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Location message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages.
+ * @param message Location message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.Mix2Proof.ILocation, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Location message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Location
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Mix2Proof.Location;
+
+ /**
+ * Decodes a Location message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Location
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Mix2Proof.Location;
+
+ /**
+ * Verifies a Location message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Location message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Location
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Mix2Proof.Location;
+
+ /**
+ * Creates a plain object from a Location message. Also converts values to other types if specified.
+ * @param message Location
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Mix2Proof.Location, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Location to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+ }
+
+ /** Properties of a ConnectionServerData. */
+ interface IConnectionServerData {
+
+ /** ConnectionServerData serverUrl */
+ serverUrl?: string;
+
+ /** ConnectionServerData nonce */
+ nonce?: (number|Long);
+ }
+
+ /** Represents a ConnectionServerData. */
+ class ConnectionServerData {
+
+ /**
+ * Constructs a new ConnectionServerData.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IConnectionServerData);
+
+ /** ConnectionServerData serverUrl. */
+ public serverUrl: string;
+
+ /** ConnectionServerData nonce. */
+ public nonce: (number|Long);
+
+ /**
+ * Creates a new ConnectionServerData instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ConnectionServerData instance
+ */
+ public static create(properties?: meerkat.IConnectionServerData): meerkat.ConnectionServerData;
+
+ /**
+ * Encodes the specified ConnectionServerData message. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages.
+ * @param message ConnectionServerData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IConnectionServerData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ConnectionServerData message, length delimited. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages.
+ * @param message ConnectionServerData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IConnectionServerData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ConnectionServerData message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ConnectionServerData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ConnectionServerData;
+
+ /**
+ * Decodes a ConnectionServerData message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ConnectionServerData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ConnectionServerData;
+
+ /**
+ * Verifies a ConnectionServerData message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ConnectionServerData message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ConnectionServerData
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ConnectionServerData;
+
+ /**
+ * Creates a plain object from a ConnectionServerData message. Also converts values to other types if specified.
+ * @param message ConnectionServerData
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ConnectionServerData, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ConnectionServerData to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ConnectionClientData. */
+ interface IConnectionClientData {
+
+ /** ConnectionClientData scannerId */
+ scannerId?: Uint8Array;
+
+ /** ConnectionClientData scannerPK */
+ scannerPK?: meerkat.ISignatureVerificationKey;
+
+ /** ConnectionClientData nonce */
+ nonce?: (number|Long);
+ }
+
+ /** Represents a ConnectionClientData. */
+ class ConnectionClientData {
+
+ /**
+ * Constructs a new ConnectionClientData.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IConnectionClientData);
+
+ /** ConnectionClientData scannerId. */
+ public scannerId: Uint8Array;
+
+ /** ConnectionClientData scannerPK. */
+ public scannerPK?: (meerkat.ISignatureVerificationKey|null);
+
+ /** ConnectionClientData nonce. */
+ public nonce: (number|Long);
+
+ /** ConnectionClientData id. */
+ public id?: string;
+
+ /**
+ * Creates a new ConnectionClientData instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ConnectionClientData instance
+ */
+ public static create(properties?: meerkat.IConnectionClientData): meerkat.ConnectionClientData;
+
+ /**
+ * Encodes the specified ConnectionClientData message. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages.
+ * @param message ConnectionClientData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IConnectionClientData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ConnectionClientData message, length delimited. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages.
+ * @param message ConnectionClientData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IConnectionClientData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ConnectionClientData message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ConnectionClientData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ConnectionClientData;
+
+ /**
+ * Decodes a ConnectionClientData message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ConnectionClientData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ConnectionClientData;
+
+ /**
+ * Verifies a ConnectionClientData message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ConnectionClientData message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ConnectionClientData
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ConnectionClientData;
+
+ /**
+ * Creates a plain object from a ConnectionClientData message. Also converts values to other types if specified.
+ * @param message ConnectionClientData
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ConnectionClientData, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ConnectionClientData to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ScannedBallot. */
+ interface IScannedBallot {
+
+ /** ScannedBallot channel */
+ channel?: Uint8Array;
+
+ /** ScannedBallot signedEncryptedBallot */
+ signedEncryptedBallot?: meerkat.ISignedEncryptedBallot;
+ }
+
+ /** Represents a ScannedBallot. */
+ class ScannedBallot {
+
+ /**
+ * Constructs a new ScannedBallot.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IScannedBallot);
+
+ /** ScannedBallot channel. */
+ public channel: Uint8Array;
+
+ /** ScannedBallot signedEncryptedBallot. */
+ public signedEncryptedBallot?: (meerkat.ISignedEncryptedBallot|null);
+
+ /**
+ * Creates a new ScannedBallot instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ScannedBallot instance
+ */
+ public static create(properties?: meerkat.IScannedBallot): meerkat.ScannedBallot;
+
+ /**
+ * Encodes the specified ScannedBallot message. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages.
+ * @param message ScannedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IScannedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ScannedBallot message, length delimited. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages.
+ * @param message ScannedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IScannedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ScannedBallot message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ScannedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScannedBallot;
+
+ /**
+ * Decodes a ScannedBallot message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ScannedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScannedBallot;
+
+ /**
+ * Verifies a ScannedBallot message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ScannedBallot message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ScannedBallot
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ScannedBallot;
+
+ /**
+ * Creates a plain object from a ScannedBallot message. Also converts values to other types if specified.
+ * @param message ScannedBallot
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ScannedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ScannedBallot to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ScanError. */
+ interface IScanError {
+
+ /** ScanError msg */
+ msg?: string;
+ }
+
+ /** Represents a ScanError. */
+ class ScanError {
+
+ /**
+ * Constructs a new ScanError.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IScanError);
+
+ /** ScanError msg. */
+ public msg: string;
+
+ /**
+ * Creates a new ScanError instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ScanError instance
+ */
+ public static create(properties?: meerkat.IScanError): meerkat.ScanError;
+
+ /**
+ * Encodes the specified ScanError message. Does not implicitly {@link meerkat.ScanError.verify|verify} messages.
+ * @param message ScanError message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IScanError, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ScanError message, length delimited. Does not implicitly {@link meerkat.ScanError.verify|verify} messages.
+ * @param message ScanError message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IScanError, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ScanError message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ScanError
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScanError;
+
+ /**
+ * Decodes a ScanError message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ScanError
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScanError;
+
+ /**
+ * Verifies a ScanError message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ScanError message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ScanError
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ScanError;
+
+ /**
+ * Creates a plain object from a ScanError message. Also converts values to other types if specified.
+ * @param message ScanError
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ScanError, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ScanError to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a ScannedData. */
+ interface IScannedData {
+
+ /** ScannedData ballot */
+ ballot?: meerkat.IScannedBallot;
+
+ /** ScannedData error */
+ error?: meerkat.IScanError;
+
+ /** ScannedData serial */
+ serial?: (number|Long);
+
+ /** ScannedData scannerId */
+ scannerId?: Uint8Array;
+ }
+
+ /** Represents a ScannedData. */
+ class ScannedData {
+
+ /**
+ * Constructs a new ScannedData.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IScannedData);
+
+ /** ScannedData ballot. */
+ public ballot?: (meerkat.IScannedBallot|null);
+
+ /** ScannedData error. */
+ public error?: (meerkat.IScanError|null);
+
+ /** ScannedData serial. */
+ public serial: (number|Long);
+
+ /** ScannedData scannerId. */
+ public scannerId: Uint8Array;
+
+ /** ScannedData data. */
+ public data?: string;
+
+ /**
+ * Creates a new ScannedData instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ScannedData instance
+ */
+ public static create(properties?: meerkat.IScannedData): meerkat.ScannedData;
+
+ /**
+ * Encodes the specified ScannedData message. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages.
+ * @param message ScannedData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IScannedData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ScannedData message, length delimited. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages.
+ * @param message ScannedData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IScannedData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a ScannedData message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ScannedData;
+
+ /**
+ * Decodes a ScannedData message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ScannedData;
+
+ /**
+ * Verifies a ScannedData message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a ScannedData message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ScannedData
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ScannedData;
+
+ /**
+ * Creates a plain object from a ScannedData message. Also converts values to other types if specified.
+ * @param message ScannedData
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ScannedData, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ScannedData to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SignedScannedData. */
+ interface ISignedScannedData {
+
+ /** SignedScannedData data */
+ data?: meerkat.IScannedData;
+
+ /** SignedScannedData scannerSig */
+ scannerSig?: meerkat.ISignature;
+ }
+
+ /** Represents a SignedScannedData. */
+ class SignedScannedData {
+
+ /**
+ * Constructs a new SignedScannedData.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISignedScannedData);
+
+ /** SignedScannedData data. */
+ public data?: (meerkat.IScannedData|null);
+
+ /** SignedScannedData scannerSig. */
+ public scannerSig?: (meerkat.ISignature|null);
+
+ /**
+ * Creates a new SignedScannedData instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SignedScannedData instance
+ */
+ public static create(properties?: meerkat.ISignedScannedData): meerkat.SignedScannedData;
+
+ /**
+ * Encodes the specified SignedScannedData message. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages.
+ * @param message SignedScannedData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISignedScannedData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SignedScannedData message, length delimited. Does not implicitly {@link meerkat.SignedScannedData.verify|verify} messages.
+ * @param message SignedScannedData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISignedScannedData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SignedScannedData message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SignedScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignedScannedData;
+
+ /**
+ * Decodes a SignedScannedData message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SignedScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignedScannedData;
+
+ /**
+ * Verifies a SignedScannedData message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SignedScannedData message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SignedScannedData
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SignedScannedData;
+
+ /**
+ * Creates a plain object from a SignedScannedData message. Also converts values to other types if specified.
+ * @param message SignedScannedData
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SignedScannedData, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SignedScannedData to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** UIElementDataType enum. */
+ enum UIElementDataType {
+ TEXT = 0,
+ IMAGE = 1,
+ VOICE = 2
+ }
+
+ /** QuestionType enum. */
+ enum QuestionType {
+ MULTIPLE_CHOICE = 0,
+ MULTIPLE_SELECTION = 1,
+ ORDER = 2
+ }
+
+ /** Properties of a UIElement. */
+ interface IUIElement {
+
+ /** UIElement type */
+ type?: meerkat.UIElementDataType;
+
+ /** UIElement data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a UIElement. */
+ class UIElement {
+
+ /**
+ * Constructs a new UIElement.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IUIElement);
+
+ /** UIElement type. */
+ public type: meerkat.UIElementDataType;
+
+ /** UIElement data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new UIElement instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns UIElement instance
+ */
+ public static create(properties?: meerkat.IUIElement): meerkat.UIElement;
+
+ /**
+ * Encodes the specified UIElement message. Does not implicitly {@link meerkat.UIElement.verify|verify} messages.
+ * @param message UIElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IUIElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified UIElement message, length delimited. Does not implicitly {@link meerkat.UIElement.verify|verify} messages.
+ * @param message UIElement message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IUIElement, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a UIElement message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns UIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.UIElement;
+
+ /**
+ * Decodes a UIElement message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns UIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.UIElement;
+
+ /**
+ * Verifies a UIElement message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a UIElement message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns UIElement
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.UIElement;
+
+ /**
+ * Creates a plain object from a UIElement message. Also converts values to other types if specified.
+ * @param message UIElement
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.UIElement, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this UIElement to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotQuestion. */
+ interface IBallotQuestion {
+
+ /** BallotQuestion isMandatory */
+ isMandatory?: boolean;
+
+ /** BallotQuestion question */
+ question?: meerkat.IUIElement;
+
+ /** BallotQuestion description */
+ description?: meerkat.IUIElement;
+
+ /** BallotQuestion answer */
+ answer?: meerkat.IUIElement[];
+ }
+
+ /** Represents a BallotQuestion. */
+ class BallotQuestion {
+
+ /**
+ * Constructs a new BallotQuestion.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotQuestion);
+
+ /** BallotQuestion isMandatory. */
+ public isMandatory: boolean;
+
+ /** BallotQuestion question. */
+ public question?: (meerkat.IUIElement|null);
+
+ /** BallotQuestion description. */
+ public description?: (meerkat.IUIElement|null);
+
+ /** BallotQuestion answer. */
+ public answer: meerkat.IUIElement[];
+
+ /**
+ * Creates a new BallotQuestion instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotQuestion instance
+ */
+ public static create(properties?: meerkat.IBallotQuestion): meerkat.BallotQuestion;
+
+ /**
+ * Encodes the specified BallotQuestion message. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages.
+ * @param message BallotQuestion message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotQuestion message, length delimited. Does not implicitly {@link meerkat.BallotQuestion.verify|verify} messages.
+ * @param message BallotQuestion message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotQuestion, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotQuestion message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotQuestion;
+
+ /**
+ * Decodes a BallotQuestion message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotQuestion;
+
+ /**
+ * Verifies a BallotQuestion message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotQuestion message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotQuestion
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotQuestion;
+
+ /**
+ * Creates a plain object from a BallotQuestion message. Also converts values to other types if specified.
+ * @param message BallotQuestion
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotQuestion, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotQuestion to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a QuestionCluster. */
+ interface IQuestionCluster {
+
+ /** QuestionCluster clusterDescription */
+ clusterDescription?: meerkat.IUIElement;
+
+ /** QuestionCluster questionIndex */
+ questionIndex?: number[];
+ }
+
+ /** Represents a QuestionCluster. */
+ class QuestionCluster {
+
+ /**
+ * Constructs a new QuestionCluster.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IQuestionCluster);
+
+ /** QuestionCluster clusterDescription. */
+ public clusterDescription?: (meerkat.IUIElement|null);
+
+ /** QuestionCluster questionIndex. */
+ public questionIndex: number[];
+
+ /**
+ * Creates a new QuestionCluster instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns QuestionCluster instance
+ */
+ public static create(properties?: meerkat.IQuestionCluster): meerkat.QuestionCluster;
+
+ /**
+ * Encodes the specified QuestionCluster message. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages.
+ * @param message QuestionCluster message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IQuestionCluster, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified QuestionCluster message, length delimited. Does not implicitly {@link meerkat.QuestionCluster.verify|verify} messages.
+ * @param message QuestionCluster message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IQuestionCluster, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a QuestionCluster message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns QuestionCluster
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.QuestionCluster;
+
+ /**
+ * Decodes a QuestionCluster message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns QuestionCluster
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.QuestionCluster;
+
+ /**
+ * Verifies a QuestionCluster message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a QuestionCluster message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns QuestionCluster
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.QuestionCluster;
+
+ /**
+ * Creates a plain object from a QuestionCluster message. Also converts values to other types if specified.
+ * @param message QuestionCluster
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.QuestionCluster, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this QuestionCluster to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Channel. */
+ interface IChannel {
+
+ /** Channel channelDescription */
+ channelDescription?: meerkat.IUIElement;
+
+ /** Channel clusterIndex */
+ clusterIndex?: number[];
+ }
+
+ /** Represents a Channel. */
+ class Channel {
+
+ /**
+ * Constructs a new Channel.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IChannel);
+
+ /** Channel channelDescription. */
+ public channelDescription?: (meerkat.IUIElement|null);
+
+ /** Channel clusterIndex. */
+ public clusterIndex: number[];
+
+ /**
+ * Creates a new Channel instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Channel instance
+ */
+ public static create(properties?: meerkat.IChannel): meerkat.Channel;
+
+ /**
+ * Encodes the specified Channel message. Does not implicitly {@link meerkat.Channel.verify|verify} messages.
+ * @param message Channel message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IChannel, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Channel message, length delimited. Does not implicitly {@link meerkat.Channel.verify|verify} messages.
+ * @param message Channel message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IChannel, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Channel message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Channel
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Channel;
+
+ /**
+ * Decodes a Channel message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Channel
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Channel;
+
+ /**
+ * Verifies a Channel message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Channel message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Channel
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Channel;
+
+ /**
+ * Creates a plain object from a Channel message. Also converts values to other types if specified.
+ * @param message Channel
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Channel, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Channel to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotAnswer. */
+ interface IBallotAnswer {
+
+ /** BallotAnswer answer */
+ answer?: (number|Long)[];
+ }
+
+ /** Represents a BallotAnswer. */
+ class BallotAnswer {
+
+ /**
+ * Constructs a new BallotAnswer.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotAnswer);
+
+ /** BallotAnswer answer. */
+ public answer: (number|Long)[];
+
+ /**
+ * Creates a new BallotAnswer instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotAnswer instance
+ */
+ public static create(properties?: meerkat.IBallotAnswer): meerkat.BallotAnswer;
+
+ /**
+ * Encodes the specified BallotAnswer message. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages.
+ * @param message BallotAnswer message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotAnswer, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotAnswer message, length delimited. Does not implicitly {@link meerkat.BallotAnswer.verify|verify} messages.
+ * @param message BallotAnswer message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotAnswer, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotAnswer message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotAnswer;
+
+ /**
+ * Decodes a BallotAnswer message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotAnswer;
+
+ /**
+ * Verifies a BallotAnswer message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotAnswer message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotAnswer
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotAnswer;
+
+ /**
+ * Creates a plain object from a BallotAnswer message. Also converts values to other types if specified.
+ * @param message BallotAnswer
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotAnswer, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotAnswer to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a PlaintextBallot. */
+ interface IPlaintextBallot {
+
+ /** PlaintextBallot serialNumber */
+ serialNumber?: (number|Long);
+
+ /** PlaintextBallot channelIdentifier */
+ channelIdentifier?: Uint8Array;
+
+ /** PlaintextBallot answers */
+ answers?: meerkat.IBallotAnswer[];
+ }
+
+ /** Represents a PlaintextBallot. */
+ class PlaintextBallot {
+
+ /**
+ * Constructs a new PlaintextBallot.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IPlaintextBallot);
+
+ /** PlaintextBallot serialNumber. */
+ public serialNumber: (number|Long);
+
+ /** PlaintextBallot channelIdentifier. */
+ public channelIdentifier: Uint8Array;
+
+ /** PlaintextBallot answers. */
+ public answers: meerkat.IBallotAnswer[];
+
+ /**
+ * Creates a new PlaintextBallot instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns PlaintextBallot instance
+ */
+ public static create(properties?: meerkat.IPlaintextBallot): meerkat.PlaintextBallot;
+
+ /**
+ * Encodes the specified PlaintextBallot message. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages.
+ * @param message PlaintextBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IPlaintextBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified PlaintextBallot message, length delimited. Does not implicitly {@link meerkat.PlaintextBallot.verify|verify} messages.
+ * @param message PlaintextBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IPlaintextBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a PlaintextBallot message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns PlaintextBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.PlaintextBallot;
+
+ /**
+ * Decodes a PlaintextBallot message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns PlaintextBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.PlaintextBallot;
+
+ /**
+ * Verifies a PlaintextBallot message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a PlaintextBallot message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns PlaintextBallot
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.PlaintextBallot;
+
+ /**
+ * Creates a plain object from a PlaintextBallot message. Also converts values to other types if specified.
+ * @param message PlaintextBallot
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.PlaintextBallot, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this PlaintextBallot to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an EncryptedBallot. */
+ interface IEncryptedBallot {
+
+ /** EncryptedBallot serialNumber */
+ serialNumber?: (number|Long);
+
+ /** EncryptedBallot data */
+ data?: meerkat.IRerandomizableEncryptedMessage;
+ }
+
+ /** Represents an EncryptedBallot. */
+ class EncryptedBallot {
+
+ /**
+ * Constructs a new EncryptedBallot.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IEncryptedBallot);
+
+ /** EncryptedBallot serialNumber. */
+ public serialNumber: (number|Long);
+
+ /** EncryptedBallot data. */
+ public data?: (meerkat.IRerandomizableEncryptedMessage|null);
+
+ /**
+ * Creates a new EncryptedBallot instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns EncryptedBallot instance
+ */
+ public static create(properties?: meerkat.IEncryptedBallot): meerkat.EncryptedBallot;
+
+ /**
+ * Encodes the specified EncryptedBallot message. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages.
+ * @param message EncryptedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified EncryptedBallot message, length delimited. Does not implicitly {@link meerkat.EncryptedBallot.verify|verify} messages.
+ * @param message EncryptedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an EncryptedBallot message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns EncryptedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.EncryptedBallot;
+
+ /**
+ * Decodes an EncryptedBallot message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns EncryptedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.EncryptedBallot;
+
+ /**
+ * Verifies an EncryptedBallot message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an EncryptedBallot message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns EncryptedBallot
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.EncryptedBallot;
+
+ /**
+ * Creates a plain object from an EncryptedBallot message. Also converts values to other types if specified.
+ * @param message EncryptedBallot
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.EncryptedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this EncryptedBallot to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SignedEncryptedBallot. */
+ interface ISignedEncryptedBallot {
+
+ /** SignedEncryptedBallot encryptedBallot */
+ encryptedBallot?: meerkat.IEncryptedBallot;
+
+ /** SignedEncryptedBallot signature */
+ signature?: meerkat.ISignature;
+ }
+
+ /** Represents a SignedEncryptedBallot. */
+ class SignedEncryptedBallot {
+
+ /**
+ * Constructs a new SignedEncryptedBallot.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISignedEncryptedBallot);
+
+ /** SignedEncryptedBallot encryptedBallot. */
+ public encryptedBallot?: (meerkat.IEncryptedBallot|null);
+
+ /** SignedEncryptedBallot signature. */
+ public signature?: (meerkat.ISignature|null);
+
+ /**
+ * Creates a new SignedEncryptedBallot instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SignedEncryptedBallot instance
+ */
+ public static create(properties?: meerkat.ISignedEncryptedBallot): meerkat.SignedEncryptedBallot;
+
+ /**
+ * Encodes the specified SignedEncryptedBallot message. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages.
+ * @param message SignedEncryptedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISignedEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SignedEncryptedBallot message, length delimited. Does not implicitly {@link meerkat.SignedEncryptedBallot.verify|verify} messages.
+ * @param message SignedEncryptedBallot message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISignedEncryptedBallot, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SignedEncryptedBallot message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SignedEncryptedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SignedEncryptedBallot;
+
+ /**
+ * Decodes a SignedEncryptedBallot message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SignedEncryptedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SignedEncryptedBallot;
+
+ /**
+ * Verifies a SignedEncryptedBallot message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SignedEncryptedBallot message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SignedEncryptedBallot
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SignedEncryptedBallot;
+
+ /**
+ * Creates a plain object from a SignedEncryptedBallot message. Also converts values to other types if specified.
+ * @param message SignedEncryptedBallot
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SignedEncryptedBallot, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SignedEncryptedBallot to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotSecrets. */
+ interface IBallotSecrets {
+
+ /** BallotSecrets plaintextBallot */
+ plaintextBallot?: meerkat.IPlaintextBallot;
+
+ /** BallotSecrets encryptionRandomness */
+ encryptionRandomness?: meerkat.IEncryptionRandomness;
+
+ /** BallotSecrets proof */
+ proof?: meerkat.IRandomnessGenerationProof;
+ }
+
+ /** Represents a BallotSecrets. */
+ class BallotSecrets {
+
+ /**
+ * Constructs a new BallotSecrets.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotSecrets);
+
+ /** BallotSecrets plaintextBallot. */
+ public plaintextBallot?: (meerkat.IPlaintextBallot|null);
+
+ /** BallotSecrets encryptionRandomness. */
+ public encryptionRandomness?: (meerkat.IEncryptionRandomness|null);
+
+ /** BallotSecrets proof. */
+ public proof?: (meerkat.IRandomnessGenerationProof|null);
+
+ /**
+ * Creates a new BallotSecrets instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotSecrets instance
+ */
+ public static create(properties?: meerkat.IBallotSecrets): meerkat.BallotSecrets;
+
+ /**
+ * Encodes the specified BallotSecrets message. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages.
+ * @param message BallotSecrets message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotSecrets, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotSecrets message, length delimited. Does not implicitly {@link meerkat.BallotSecrets.verify|verify} messages.
+ * @param message BallotSecrets message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotSecrets, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotSecrets message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotSecrets
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotSecrets;
+
+ /**
+ * Decodes a BallotSecrets message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotSecrets
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotSecrets;
+
+ /**
+ * Verifies a BallotSecrets message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotSecrets message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotSecrets
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotSecrets;
+
+ /**
+ * Creates a plain object from a BallotSecrets message. Also converts values to other types if specified.
+ * @param message BallotSecrets
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotSecrets, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotSecrets to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BoothParams. */
+ interface IBoothParams {
+
+ /** BoothParams pscVerificationKeys */
+ pscVerificationKeys?: meerkat.ISignatureVerificationKey[];
+ }
+
+ /** Represents a BoothParams. */
+ class BoothParams {
+
+ /**
+ * Constructs a new BoothParams.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBoothParams);
+
+ /** BoothParams pscVerificationKeys. */
+ public pscVerificationKeys: meerkat.ISignatureVerificationKey[];
+
+ /**
+ * Creates a new BoothParams instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BoothParams instance
+ */
+ public static create(properties?: meerkat.IBoothParams): meerkat.BoothParams;
+
+ /**
+ * Encodes the specified BoothParams message. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages.
+ * @param message BoothParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBoothParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BoothParams message, length delimited. Does not implicitly {@link meerkat.BoothParams.verify|verify} messages.
+ * @param message BoothParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBoothParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BoothParams message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BoothParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoothParams;
+
+ /**
+ * Decodes a BoothParams message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BoothParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoothParams;
+
+ /**
+ * Verifies a BoothParams message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BoothParams message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BoothParams
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BoothParams;
+
+ /**
+ * Creates a plain object from a BoothParams message. Also converts values to other types if specified.
+ * @param message BoothParams
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BoothParams, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BoothParams to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BoothSystemMessages. */
+ interface IBoothSystemMessages {
+
+ /** BoothSystemMessages systemMessage */
+ systemMessage?: { [k: string]: meerkat.IUIElement };
+ }
+
+ /** Represents a BoothSystemMessages. */
+ class BoothSystemMessages {
+
+ /**
+ * Constructs a new BoothSystemMessages.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBoothSystemMessages);
+
+ /** BoothSystemMessages systemMessage. */
+ public systemMessage: { [k: string]: meerkat.IUIElement };
+
+ /**
+ * Creates a new BoothSystemMessages instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BoothSystemMessages instance
+ */
+ public static create(properties?: meerkat.IBoothSystemMessages): meerkat.BoothSystemMessages;
+
+ /**
+ * Encodes the specified BoothSystemMessages message. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages.
+ * @param message BoothSystemMessages message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBoothSystemMessages, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BoothSystemMessages message, length delimited. Does not implicitly {@link meerkat.BoothSystemMessages.verify|verify} messages.
+ * @param message BoothSystemMessages message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBoothSystemMessages, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BoothSystemMessages message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BoothSystemMessages
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BoothSystemMessages;
+
+ /**
+ * Decodes a BoothSystemMessages message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BoothSystemMessages
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BoothSystemMessages;
+
+ /**
+ * Verifies a BoothSystemMessages message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BoothSystemMessages message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BoothSystemMessages
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BoothSystemMessages;
+
+ /**
+ * Creates a plain object from a BoothSystemMessages message. Also converts values to other types if specified.
+ * @param message BoothSystemMessages
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BoothSystemMessages, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BoothSystemMessages to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BallotAnswerTranslationTable. */
+ interface IBallotAnswerTranslationTable {
+
+ /** BallotAnswerTranslationTable data */
+ data?: Uint8Array;
+ }
+
+ /** Represents a BallotAnswerTranslationTable. */
+ class BallotAnswerTranslationTable {
+
+ /**
+ * Constructs a new BallotAnswerTranslationTable.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBallotAnswerTranslationTable);
+
+ /** BallotAnswerTranslationTable data. */
+ public data: Uint8Array;
+
+ /**
+ * Creates a new BallotAnswerTranslationTable instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BallotAnswerTranslationTable instance
+ */
+ public static create(properties?: meerkat.IBallotAnswerTranslationTable): meerkat.BallotAnswerTranslationTable;
+
+ /**
+ * Encodes the specified BallotAnswerTranslationTable message. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages.
+ * @param message BallotAnswerTranslationTable message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBallotAnswerTranslationTable, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BallotAnswerTranslationTable message, length delimited. Does not implicitly {@link meerkat.BallotAnswerTranslationTable.verify|verify} messages.
+ * @param message BallotAnswerTranslationTable message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBallotAnswerTranslationTable, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BallotAnswerTranslationTable
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BallotAnswerTranslationTable;
+
+ /**
+ * Decodes a BallotAnswerTranslationTable message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BallotAnswerTranslationTable
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BallotAnswerTranslationTable;
+
+ /**
+ * Verifies a BallotAnswerTranslationTable message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BallotAnswerTranslationTable message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BallotAnswerTranslationTable
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BallotAnswerTranslationTable;
+
+ /**
+ * Creates a plain object from a BallotAnswerTranslationTable message. Also converts values to other types if specified.
+ * @param message BallotAnswerTranslationTable
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BallotAnswerTranslationTable, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BallotAnswerTranslationTable to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a BulletinBoardClientParams. */
+ interface IBulletinBoardClientParams {
+
+ /** BulletinBoardClientParams bulletinBoardAddress */
+ bulletinBoardAddress?: string[];
+
+ /** BulletinBoardClientParams minRedundancy */
+ minRedundancy?: number;
+ }
+
+ /** Represents a BulletinBoardClientParams. */
+ class BulletinBoardClientParams {
+
+ /**
+ * Constructs a new BulletinBoardClientParams.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IBulletinBoardClientParams);
+
+ /** BulletinBoardClientParams bulletinBoardAddress. */
+ public bulletinBoardAddress: string[];
+
+ /** BulletinBoardClientParams minRedundancy. */
+ public minRedundancy: number;
+
+ /**
+ * Creates a new BulletinBoardClientParams instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns BulletinBoardClientParams instance
+ */
+ public static create(properties?: meerkat.IBulletinBoardClientParams): meerkat.BulletinBoardClientParams;
+
+ /**
+ * Encodes the specified BulletinBoardClientParams message. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages.
+ * @param message BulletinBoardClientParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IBulletinBoardClientParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified BulletinBoardClientParams message, length delimited. Does not implicitly {@link meerkat.BulletinBoardClientParams.verify|verify} messages.
+ * @param message BulletinBoardClientParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IBulletinBoardClientParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a BulletinBoardClientParams message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns BulletinBoardClientParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.BulletinBoardClientParams;
+
+ /**
+ * Decodes a BulletinBoardClientParams message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns BulletinBoardClientParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.BulletinBoardClientParams;
+
+ /**
+ * Verifies a BulletinBoardClientParams message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a BulletinBoardClientParams message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns BulletinBoardClientParams
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.BulletinBoardClientParams;
+
+ /**
+ * Creates a plain object from a BulletinBoardClientParams message. Also converts values to other types if specified.
+ * @param message BulletinBoardClientParams
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.BulletinBoardClientParams, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this BulletinBoardClientParams to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of an ElectionParams. */
+ interface IElectionParams {
+
+ /** ElectionParams trusteeVerificationKeys */
+ trusteeVerificationKeys?: meerkat.ISignatureVerificationKey[];
+
+ /** ElectionParams trusteeSignatureThreshold */
+ trusteeSignatureThreshold?: number;
+
+ /** ElectionParams ballotEncryptionKey */
+ ballotEncryptionKey?: meerkat.IEncryptionPublicKey;
+
+ /** ElectionParams mixerVerificationKeys */
+ mixerVerificationKeys?: meerkat.ISignatureVerificationKey[];
+
+ /** ElectionParams mixerThreshold */
+ mixerThreshold?: number;
+
+ /** ElectionParams channelChoiceQuestions */
+ channelChoiceQuestions?: meerkat.IBallotQuestion[];
+
+ /** ElectionParams selectionData */
+ selectionData?: meerkat.ISimpleCategoriesSelectionData;
+
+ /** ElectionParams raceQuestions */
+ raceQuestions?: meerkat.IBallotQuestion[];
+
+ /** ElectionParams bulletinBoardClientParams */
+ bulletinBoardClientParams?: meerkat.IBulletinBoardClientParams;
+ }
+
+ /** Represents an ElectionParams. */
+ class ElectionParams {
+
+ /**
+ * Constructs a new ElectionParams.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.IElectionParams);
+
+ /** ElectionParams trusteeVerificationKeys. */
+ public trusteeVerificationKeys: meerkat.ISignatureVerificationKey[];
+
+ /** ElectionParams trusteeSignatureThreshold. */
+ public trusteeSignatureThreshold: number;
+
+ /** ElectionParams ballotEncryptionKey. */
+ public ballotEncryptionKey?: (meerkat.IEncryptionPublicKey|null);
+
+ /** ElectionParams mixerVerificationKeys. */
+ public mixerVerificationKeys: meerkat.ISignatureVerificationKey[];
+
+ /** ElectionParams mixerThreshold. */
+ public mixerThreshold: number;
+
+ /** ElectionParams channelChoiceQuestions. */
+ public channelChoiceQuestions: meerkat.IBallotQuestion[];
+
+ /** ElectionParams selectionData. */
+ public selectionData?: (meerkat.ISimpleCategoriesSelectionData|null);
+
+ /** ElectionParams raceQuestions. */
+ public raceQuestions: meerkat.IBallotQuestion[];
+
+ /** ElectionParams bulletinBoardClientParams. */
+ public bulletinBoardClientParams?: (meerkat.IBulletinBoardClientParams|null);
+
+ /**
+ * Creates a new ElectionParams instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns ElectionParams instance
+ */
+ public static create(properties?: meerkat.IElectionParams): meerkat.ElectionParams;
+
+ /**
+ * Encodes the specified ElectionParams message. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages.
+ * @param message ElectionParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.IElectionParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified ElectionParams message, length delimited. Does not implicitly {@link meerkat.ElectionParams.verify|verify} messages.
+ * @param message ElectionParams message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.IElectionParams, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes an ElectionParams message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns ElectionParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.ElectionParams;
+
+ /**
+ * Decodes an ElectionParams message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns ElectionParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.ElectionParams;
+
+ /**
+ * Verifies an ElectionParams message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates an ElectionParams message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns ElectionParams
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.ElectionParams;
+
+ /**
+ * Creates a plain object from an ElectionParams message. Also converts values to other types if specified.
+ * @param message ElectionParams
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.ElectionParams, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this ElectionParams to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a Category. */
+ interface ICategory {
+
+ /** Category questionIndex */
+ questionIndex?: number[];
+ }
+
+ /** Represents a Category. */
+ class Category {
+
+ /**
+ * Constructs a new Category.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ICategory);
+
+ /** Category questionIndex. */
+ public questionIndex: number[];
+
+ /**
+ * Creates a new Category instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Category instance
+ */
+ public static create(properties?: meerkat.ICategory): meerkat.Category;
+
+ /**
+ * Encodes the specified Category message. Does not implicitly {@link meerkat.Category.verify|verify} messages.
+ * @param message Category message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ICategory, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Category message, length delimited. Does not implicitly {@link meerkat.Category.verify|verify} messages.
+ * @param message Category message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ICategory, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Category message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Category
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.Category;
+
+ /**
+ * Decodes a Category message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Category
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.Category;
+
+ /**
+ * Verifies a Category message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Category message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Category
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.Category;
+
+ /**
+ * Creates a plain object from a Category message. Also converts values to other types if specified.
+ * @param message Category
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.Category, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Category to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a CategoryChooser. */
+ interface ICategoryChooser {
+
+ /** CategoryChooser category */
+ category?: meerkat.ICategory[];
+ }
+
+ /** Represents a CategoryChooser. */
+ class CategoryChooser {
+
+ /**
+ * Constructs a new CategoryChooser.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ICategoryChooser);
+
+ /** CategoryChooser category. */
+ public category: meerkat.ICategory[];
+
+ /**
+ * Creates a new CategoryChooser instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns CategoryChooser instance
+ */
+ public static create(properties?: meerkat.ICategoryChooser): meerkat.CategoryChooser;
+
+ /**
+ * Encodes the specified CategoryChooser message. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages.
+ * @param message CategoryChooser message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ICategoryChooser, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified CategoryChooser message, length delimited. Does not implicitly {@link meerkat.CategoryChooser.verify|verify} messages.
+ * @param message CategoryChooser message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ICategoryChooser, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a CategoryChooser message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns CategoryChooser
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.CategoryChooser;
+
+ /**
+ * Decodes a CategoryChooser message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns CategoryChooser
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.CategoryChooser;
+
+ /**
+ * Verifies a CategoryChooser message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a CategoryChooser message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns CategoryChooser
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.CategoryChooser;
+
+ /**
+ * Creates a plain object from a CategoryChooser message. Also converts values to other types if specified.
+ * @param message CategoryChooser
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.CategoryChooser, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this CategoryChooser to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+
+ /** Properties of a SimpleCategoriesSelectionData. */
+ interface ISimpleCategoriesSelectionData {
+
+ /** SimpleCategoriesSelectionData sharedDefaults */
+ sharedDefaults?: meerkat.ICategory;
+
+ /** SimpleCategoriesSelectionData categoryChooser */
+ categoryChooser?: meerkat.ICategoryChooser[];
+ }
+
+ /** Represents a SimpleCategoriesSelectionData. */
+ class SimpleCategoriesSelectionData {
+
+ /**
+ * Constructs a new SimpleCategoriesSelectionData.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: meerkat.ISimpleCategoriesSelectionData);
+
+ /** SimpleCategoriesSelectionData sharedDefaults. */
+ public sharedDefaults?: (meerkat.ICategory|null);
+
+ /** SimpleCategoriesSelectionData categoryChooser. */
+ public categoryChooser: meerkat.ICategoryChooser[];
+
+ /**
+ * Creates a new SimpleCategoriesSelectionData instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns SimpleCategoriesSelectionData instance
+ */
+ public static create(properties?: meerkat.ISimpleCategoriesSelectionData): meerkat.SimpleCategoriesSelectionData;
+
+ /**
+ * Encodes the specified SimpleCategoriesSelectionData message. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages.
+ * @param message SimpleCategoriesSelectionData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: meerkat.ISimpleCategoriesSelectionData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified SimpleCategoriesSelectionData message, length delimited. Does not implicitly {@link meerkat.SimpleCategoriesSelectionData.verify|verify} messages.
+ * @param message SimpleCategoriesSelectionData message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: meerkat.ISimpleCategoriesSelectionData, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns SimpleCategoriesSelectionData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): meerkat.SimpleCategoriesSelectionData;
+
+ /**
+ * Decodes a SimpleCategoriesSelectionData message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns SimpleCategoriesSelectionData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): meerkat.SimpleCategoriesSelectionData;
+
+ /**
+ * Verifies a SimpleCategoriesSelectionData message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a SimpleCategoriesSelectionData message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns SimpleCategoriesSelectionData
+ */
+ public static fromObject(object: { [k: string]: any }): meerkat.SimpleCategoriesSelectionData;
+
+ /**
+ * Creates a plain object from a SimpleCategoriesSelectionData message. Also converts values to other types if specified.
+ * @param message SimpleCategoriesSelectionData
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: meerkat.SimpleCategoriesSelectionData, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this SimpleCategoriesSelectionData to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+}
+
+/** Namespace google. */
+export namespace google {
+
+ /** Namespace protobuf. */
+ namespace protobuf {
+
+ /** Properties of a Timestamp. */
+ interface ITimestamp {
+
+ /** Timestamp seconds */
+ seconds?: (number|Long);
+
+ /** Timestamp nanos */
+ nanos?: number;
+ }
+
+ /** Represents a Timestamp. */
+ class Timestamp {
+
+ /**
+ * Constructs a new Timestamp.
+ * @param [properties] Properties to set
+ */
+ constructor(properties?: google.protobuf.ITimestamp);
+
+ /** Timestamp seconds. */
+ public seconds: (number|Long);
+
+ /** Timestamp nanos. */
+ public nanos: number;
+
+ /**
+ * Creates a new Timestamp instance using the specified properties.
+ * @param [properties] Properties to set
+ * @returns Timestamp instance
+ */
+ public static create(properties?: google.protobuf.ITimestamp): google.protobuf.Timestamp;
+
+ /**
+ * Encodes the specified Timestamp message. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
+ * @param message Timestamp message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encode(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Encodes the specified Timestamp message, length delimited. Does not implicitly {@link google.protobuf.Timestamp.verify|verify} messages.
+ * @param message Timestamp message or plain object to encode
+ * @param [writer] Writer to encode to
+ * @returns Writer
+ */
+ public static encodeDelimited(message: google.protobuf.ITimestamp, writer?: $protobuf.Writer): $protobuf.Writer;
+
+ /**
+ * Decodes a Timestamp message from the specified reader or buffer.
+ * @param reader Reader or buffer to decode from
+ * @param [length] Message length if known beforehand
+ * @returns Timestamp
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.protobuf.Timestamp;
+
+ /**
+ * Decodes a Timestamp message from the specified reader or buffer, length delimited.
+ * @param reader Reader or buffer to decode from
+ * @returns Timestamp
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.protobuf.Timestamp;
+
+ /**
+ * Verifies a Timestamp message.
+ * @param message Plain object to verify
+ * @returns `null` if valid, otherwise the reason why it is not
+ */
+ public static verify(message: { [k: string]: any }): (string|null);
+
+ /**
+ * Creates a Timestamp message from a plain object. Also converts values to their respective internal types.
+ * @param object Plain object
+ * @returns Timestamp
+ */
+ public static fromObject(object: { [k: string]: any }): google.protobuf.Timestamp;
+
+ /**
+ * Creates a plain object from a Timestamp message. Also converts values to other types if specified.
+ * @param message Timestamp
+ * @param [options] Conversion options
+ * @returns Plain object
+ */
+ public static toObject(message: google.protobuf.Timestamp, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+ /**
+ * Converts this Timestamp to JSON.
+ * @returns JSON object
+ */
+ public toJSON(): { [k: string]: any };
+ }
+ }
+}
diff --git a/bulletin-board-server-frontend/src/app/bundle.js b/bulletin-board-server-frontend/src/app/bundle.js
new file mode 100644
index 0000000..3de0349
--- /dev/null
+++ b/bulletin-board-server-frontend/src/app/bundle.js
@@ -0,0 +1,17755 @@
+/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/
+"use strict";
+
+var $protobuf = require("protobufjs/minimal");
+
+// Common aliases
+var $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;
+
+// Exported root namespace
+var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {});
+
+$root.meerkat = (function() {
+
+ /**
+ * Namespace meerkat.
+ * @exports meerkat
+ * @namespace
+ */
+ var meerkat = {};
+
+ meerkat.UIAnswer = (function() {
+
+ /**
+ * Properties of a UIAnswer.
+ * @memberof meerkat
+ * @interface IUIAnswer
+ * @property {Uint8Array} [answer] UIAnswer answer
+ * @property {string} [description] UIAnswer description
+ */
+
+ /**
+ * Constructs a new UIAnswer.
+ * @memberof meerkat
+ * @classdesc Represents a UIAnswer.
+ * @constructor
+ * @param {meerkat.IUIAnswer=} [properties] Properties to set
+ */
+ function UIAnswer(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * UIAnswer answer.
+ * @member {Uint8Array}answer
+ * @memberof meerkat.UIAnswer
+ * @instance
+ */
+ UIAnswer.prototype.answer = $util.newBuffer([]);
+
+ /**
+ * UIAnswer description.
+ * @member {string}description
+ * @memberof meerkat.UIAnswer
+ * @instance
+ */
+ UIAnswer.prototype.description = "";
+
+ /**
+ * Creates a new UIAnswer instance using the specified properties.
+ * @function create
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {meerkat.IUIAnswer=} [properties] Properties to set
+ * @returns {meerkat.UIAnswer} UIAnswer instance
+ */
+ UIAnswer.create = function create(properties) {
+ return new UIAnswer(properties);
+ };
+
+ /**
+ * Encodes the specified UIAnswer message. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {meerkat.IUIAnswer} message UIAnswer message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIAnswer.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.answer != null && message.hasOwnProperty("answer"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.answer);
+ if (message.description != null && message.hasOwnProperty("description"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.description);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified UIAnswer message, length delimited. Does not implicitly {@link meerkat.UIAnswer.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {meerkat.IUIAnswer} message UIAnswer message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIAnswer.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a UIAnswer message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.UIAnswer} UIAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIAnswer.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIAnswer();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.answer = reader.bytes();
+ break;
+ case 2:
+ message.description = reader.string();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a UIAnswer message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.UIAnswer} UIAnswer
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIAnswer.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a UIAnswer message.
+ * @function verify
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ UIAnswer.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.answer != null && message.hasOwnProperty("answer"))
+ if (!(message.answer && typeof message.answer.length === "number" || $util.isString(message.answer)))
+ return "answer: buffer expected";
+ if (message.description != null && message.hasOwnProperty("description"))
+ if (!$util.isString(message.description))
+ return "description: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a UIAnswer message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.UIAnswer} UIAnswer
+ */
+ UIAnswer.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.UIAnswer)
+ return object;
+ var message = new $root.meerkat.UIAnswer();
+ if (object.answer != null)
+ if (typeof object.answer === "string")
+ $util.base64.decode(object.answer, message.answer = $util.newBuffer($util.base64.length(object.answer)), 0);
+ else if (object.answer.length)
+ message.answer = object.answer;
+ if (object.description != null)
+ message.description = String(object.description);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a UIAnswer message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.UIAnswer
+ * @static
+ * @param {meerkat.UIAnswer} message UIAnswer
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ UIAnswer.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.answer = options.bytes === String ? "" : [];
+ object.description = "";
+ }
+ if (message.answer != null && message.hasOwnProperty("answer"))
+ object.answer = options.bytes === String ? $util.base64.encode(message.answer, 0, message.answer.length) : options.bytes === Array ? Array.prototype.slice.call(message.answer) : message.answer;
+ if (message.description != null && message.hasOwnProperty("description"))
+ object.description = message.description;
+ return object;
+ };
+
+ /**
+ * Converts this UIAnswer to JSON.
+ * @function toJSON
+ * @memberof meerkat.UIAnswer
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ UIAnswer.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return UIAnswer;
+ })();
+
+ meerkat.ListOfAnswers = (function() {
+
+ /**
+ * Properties of a ListOfAnswers.
+ * @memberof meerkat
+ * @interface IListOfAnswers
+ * @property {Array.} [answers] ListOfAnswers answers
+ */
+
+ /**
+ * Constructs a new ListOfAnswers.
+ * @memberof meerkat
+ * @classdesc Represents a ListOfAnswers.
+ * @constructor
+ * @param {meerkat.IListOfAnswers=} [properties] Properties to set
+ */
+ function ListOfAnswers(properties) {
+ this.answers = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ListOfAnswers answers.
+ * @member {Array.}answers
+ * @memberof meerkat.ListOfAnswers
+ * @instance
+ */
+ ListOfAnswers.prototype.answers = $util.emptyArray;
+
+ /**
+ * Creates a new ListOfAnswers instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {meerkat.IListOfAnswers=} [properties] Properties to set
+ * @returns {meerkat.ListOfAnswers} ListOfAnswers instance
+ */
+ ListOfAnswers.create = function create(properties) {
+ return new ListOfAnswers(properties);
+ };
+
+ /**
+ * Encodes the specified ListOfAnswers message. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {meerkat.IListOfAnswers} message ListOfAnswers message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListOfAnswers.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.answers != null && message.answers.length)
+ for (var i = 0; i < message.answers.length; ++i)
+ $root.meerkat.UIAnswer.encode(message.answers[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ListOfAnswers message, length delimited. Does not implicitly {@link meerkat.ListOfAnswers.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {meerkat.IListOfAnswers} message ListOfAnswers message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ListOfAnswers.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ListOfAnswers message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ListOfAnswers} ListOfAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListOfAnswers.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ListOfAnswers();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.answers && message.answers.length))
+ message.answers = [];
+ message.answers.push($root.meerkat.UIAnswer.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ListOfAnswers message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ListOfAnswers} ListOfAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ListOfAnswers.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ListOfAnswers message.
+ * @function verify
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ListOfAnswers.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.answers != null && message.hasOwnProperty("answers")) {
+ if (!Array.isArray(message.answers))
+ return "answers: array expected";
+ for (var i = 0; i < message.answers.length; ++i) {
+ var error = $root.meerkat.UIAnswer.verify(message.answers[i]);
+ if (error)
+ return "answers." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ListOfAnswers message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ListOfAnswers} ListOfAnswers
+ */
+ ListOfAnswers.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ListOfAnswers)
+ return object;
+ var message = new $root.meerkat.ListOfAnswers();
+ if (object.answers) {
+ if (!Array.isArray(object.answers))
+ throw TypeError(".meerkat.ListOfAnswers.answers: array expected");
+ message.answers = [];
+ for (var i = 0; i < object.answers.length; ++i) {
+ if (typeof object.answers[i] !== "object")
+ throw TypeError(".meerkat.ListOfAnswers.answers: object expected");
+ message.answers[i] = $root.meerkat.UIAnswer.fromObject(object.answers[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ListOfAnswers message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ListOfAnswers
+ * @static
+ * @param {meerkat.ListOfAnswers} message ListOfAnswers
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ListOfAnswers.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.answers = [];
+ if (message.answers && message.answers.length) {
+ object.answers = [];
+ for (var j = 0; j < message.answers.length; ++j)
+ object.answers[j] = $root.meerkat.UIAnswer.toObject(message.answers[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this ListOfAnswers to JSON.
+ * @function toJSON
+ * @memberof meerkat.ListOfAnswers
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ListOfAnswers.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ListOfAnswers;
+ })();
+
+ meerkat.UIAnswers = (function() {
+
+ /**
+ * Properties of a UIAnswers.
+ * @memberof meerkat
+ * @interface IUIAnswers
+ * @property {number} [AnswersType] UIAnswers AnswersType
+ * @property {meerkat.IListOfAnswers} [answers] UIAnswers answers
+ */
+
+ /**
+ * Constructs a new UIAnswers.
+ * @memberof meerkat
+ * @classdesc Represents a UIAnswers.
+ * @constructor
+ * @param {meerkat.IUIAnswers=} [properties] Properties to set
+ */
+ function UIAnswers(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * UIAnswers AnswersType.
+ * @member {number}AnswersType
+ * @memberof meerkat.UIAnswers
+ * @instance
+ */
+ UIAnswers.prototype.AnswersType = 0;
+
+ /**
+ * UIAnswers answers.
+ * @member {(meerkat.IListOfAnswers|null|undefined)}answers
+ * @memberof meerkat.UIAnswers
+ * @instance
+ */
+ UIAnswers.prototype.answers = null;
+
+ /**
+ * Creates a new UIAnswers instance using the specified properties.
+ * @function create
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {meerkat.IUIAnswers=} [properties] Properties to set
+ * @returns {meerkat.UIAnswers} UIAnswers instance
+ */
+ UIAnswers.create = function create(properties) {
+ return new UIAnswers(properties);
+ };
+
+ /**
+ * Encodes the specified UIAnswers message. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {meerkat.IUIAnswers} message UIAnswers message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIAnswers.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.AnswersType != null && message.hasOwnProperty("AnswersType"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.AnswersType);
+ if (message.answers != null && message.hasOwnProperty("answers"))
+ $root.meerkat.ListOfAnswers.encode(message.answers, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified UIAnswers message, length delimited. Does not implicitly {@link meerkat.UIAnswers.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {meerkat.IUIAnswers} message UIAnswers message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIAnswers.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a UIAnswers message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.UIAnswers} UIAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIAnswers.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIAnswers();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.AnswersType = reader.int32();
+ break;
+ case 2:
+ message.answers = $root.meerkat.ListOfAnswers.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a UIAnswers message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.UIAnswers} UIAnswers
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIAnswers.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a UIAnswers message.
+ * @function verify
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ UIAnswers.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.AnswersType != null && message.hasOwnProperty("AnswersType"))
+ if (!$util.isInteger(message.AnswersType))
+ return "AnswersType: integer expected";
+ if (message.answers != null && message.hasOwnProperty("answers")) {
+ var error = $root.meerkat.ListOfAnswers.verify(message.answers);
+ if (error)
+ return "answers." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a UIAnswers message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.UIAnswers} UIAnswers
+ */
+ UIAnswers.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.UIAnswers)
+ return object;
+ var message = new $root.meerkat.UIAnswers();
+ if (object.AnswersType != null)
+ message.AnswersType = object.AnswersType | 0;
+ if (object.answers != null) {
+ if (typeof object.answers !== "object")
+ throw TypeError(".meerkat.UIAnswers.answers: object expected");
+ message.answers = $root.meerkat.ListOfAnswers.fromObject(object.answers);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a UIAnswers message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.UIAnswers
+ * @static
+ * @param {meerkat.UIAnswers} message UIAnswers
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ UIAnswers.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.AnswersType = 0;
+ object.answers = null;
+ }
+ if (message.AnswersType != null && message.hasOwnProperty("AnswersType"))
+ object.AnswersType = message.AnswersType;
+ if (message.answers != null && message.hasOwnProperty("answers"))
+ object.answers = $root.meerkat.ListOfAnswers.toObject(message.answers, options);
+ return object;
+ };
+
+ /**
+ * Converts this UIAnswers to JSON.
+ * @function toJSON
+ * @memberof meerkat.UIAnswers
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ UIAnswers.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return UIAnswers;
+ })();
+
+ meerkat.Question = (function() {
+
+ /**
+ * Properties of a Question.
+ * @memberof meerkat
+ * @interface IQuestion
+ * @property {Uint8Array} [question] Question question
+ */
+
+ /**
+ * Constructs a new Question.
+ * @memberof meerkat
+ * @classdesc Represents a Question.
+ * @constructor
+ * @param {meerkat.IQuestion=} [properties] Properties to set
+ */
+ function Question(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Question question.
+ * @member {Uint8Array}question
+ * @memberof meerkat.Question
+ * @instance
+ */
+ Question.prototype.question = $util.newBuffer([]);
+
+ /**
+ * Creates a new Question instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Question
+ * @static
+ * @param {meerkat.IQuestion=} [properties] Properties to set
+ * @returns {meerkat.Question} Question instance
+ */
+ Question.create = function create(properties) {
+ return new Question(properties);
+ };
+
+ /**
+ * Encodes the specified Question message. Does not implicitly {@link meerkat.Question.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Question
+ * @static
+ * @param {meerkat.IQuestion} message Question message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Question.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.question != null && message.hasOwnProperty("question"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.question);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Question message, length delimited. Does not implicitly {@link meerkat.Question.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Question
+ * @static
+ * @param {meerkat.IQuestion} message Question message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Question.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Question message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Question
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Question} Question
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Question.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Question();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.question = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Question message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Question
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Question} Question
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Question.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Question message.
+ * @function verify
+ * @memberof meerkat.Question
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Question.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.question != null && message.hasOwnProperty("question"))
+ if (!(message.question && typeof message.question.length === "number" || $util.isString(message.question)))
+ return "question: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a Question message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Question
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Question} Question
+ */
+ Question.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Question)
+ return object;
+ var message = new $root.meerkat.Question();
+ if (object.question != null)
+ if (typeof object.question === "string")
+ $util.base64.decode(object.question, message.question = $util.newBuffer($util.base64.length(object.question)), 0);
+ else if (object.question.length)
+ message.question = object.question;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Question message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Question
+ * @static
+ * @param {meerkat.Question} message Question
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Question.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.question = options.bytes === String ? "" : [];
+ if (message.question != null && message.hasOwnProperty("question"))
+ object.question = options.bytes === String ? $util.base64.encode(message.question, 0, message.question.length) : options.bytes === Array ? Array.prototype.slice.call(message.question) : message.question;
+ return object;
+ };
+
+ /**
+ * Converts this Question to JSON.
+ * @function toJSON
+ * @memberof meerkat.Question
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Question.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return Question;
+ })();
+
+ meerkat.UIQuestion = (function() {
+
+ /**
+ * Properties of a UIQuestion.
+ * @memberof meerkat
+ * @interface IUIQuestion
+ * @property {number} [QuestionType] UIQuestion QuestionType
+ * @property {meerkat.IQuestion} [question] UIQuestion question
+ */
+
+ /**
+ * Constructs a new UIQuestion.
+ * @memberof meerkat
+ * @classdesc Represents a UIQuestion.
+ * @constructor
+ * @param {meerkat.IUIQuestion=} [properties] Properties to set
+ */
+ function UIQuestion(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * UIQuestion QuestionType.
+ * @member {number}QuestionType
+ * @memberof meerkat.UIQuestion
+ * @instance
+ */
+ UIQuestion.prototype.QuestionType = 0;
+
+ /**
+ * UIQuestion question.
+ * @member {(meerkat.IQuestion|null|undefined)}question
+ * @memberof meerkat.UIQuestion
+ * @instance
+ */
+ UIQuestion.prototype.question = null;
+
+ /**
+ * Creates a new UIQuestion instance using the specified properties.
+ * @function create
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {meerkat.IUIQuestion=} [properties] Properties to set
+ * @returns {meerkat.UIQuestion} UIQuestion instance
+ */
+ UIQuestion.create = function create(properties) {
+ return new UIQuestion(properties);
+ };
+
+ /**
+ * Encodes the specified UIQuestion message. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {meerkat.IUIQuestion} message UIQuestion message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIQuestion.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.QuestionType != null && message.hasOwnProperty("QuestionType"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.QuestionType);
+ if (message.question != null && message.hasOwnProperty("question"))
+ $root.meerkat.Question.encode(message.question, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified UIQuestion message, length delimited. Does not implicitly {@link meerkat.UIQuestion.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {meerkat.IUIQuestion} message UIQuestion message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UIQuestion.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a UIQuestion message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.UIQuestion} UIQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIQuestion.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UIQuestion();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.QuestionType = reader.int32();
+ break;
+ case 2:
+ message.question = $root.meerkat.Question.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a UIQuestion message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.UIQuestion} UIQuestion
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UIQuestion.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a UIQuestion message.
+ * @function verify
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ UIQuestion.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.QuestionType != null && message.hasOwnProperty("QuestionType"))
+ if (!$util.isInteger(message.QuestionType))
+ return "QuestionType: integer expected";
+ if (message.question != null && message.hasOwnProperty("question")) {
+ var error = $root.meerkat.Question.verify(message.question);
+ if (error)
+ return "question." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a UIQuestion message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.UIQuestion} UIQuestion
+ */
+ UIQuestion.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.UIQuestion)
+ return object;
+ var message = new $root.meerkat.UIQuestion();
+ if (object.QuestionType != null)
+ message.QuestionType = object.QuestionType | 0;
+ if (object.question != null) {
+ if (typeof object.question !== "object")
+ throw TypeError(".meerkat.UIQuestion.question: object expected");
+ message.question = $root.meerkat.Question.fromObject(object.question);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a UIQuestion message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.UIQuestion
+ * @static
+ * @param {meerkat.UIQuestion} message UIQuestion
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ UIQuestion.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.QuestionType = 0;
+ object.question = null;
+ }
+ if (message.QuestionType != null && message.hasOwnProperty("QuestionType"))
+ object.QuestionType = message.QuestionType;
+ if (message.question != null && message.hasOwnProperty("question"))
+ object.question = $root.meerkat.Question.toObject(message.question, options);
+ return object;
+ };
+
+ /**
+ * Converts this UIQuestion to JSON.
+ * @function toJSON
+ * @memberof meerkat.UIQuestion
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ UIQuestion.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return UIQuestion;
+ })();
+
+ meerkat.BallotQuestionUIElement = (function() {
+
+ /**
+ * Properties of a BallotQuestionUIElement.
+ * @memberof meerkat
+ * @interface IBallotQuestionUIElement
+ * @property {meerkat.IUIAnswers} [answers] BallotQuestionUIElement answers
+ * @property {boolean} [RandomizeListOrder] BallotQuestionUIElement RandomizeListOrder
+ * @property {meerkat.IUIQuestion} [question] BallotQuestionUIElement question
+ */
+
+ /**
+ * Constructs a new BallotQuestionUIElement.
+ * @memberof meerkat
+ * @classdesc Represents a BallotQuestionUIElement.
+ * @constructor
+ * @param {meerkat.IBallotQuestionUIElement=} [properties] Properties to set
+ */
+ function BallotQuestionUIElement(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BallotQuestionUIElement answers.
+ * @member {(meerkat.IUIAnswers|null|undefined)}answers
+ * @memberof meerkat.BallotQuestionUIElement
+ * @instance
+ */
+ BallotQuestionUIElement.prototype.answers = null;
+
+ /**
+ * BallotQuestionUIElement RandomizeListOrder.
+ * @member {boolean}RandomizeListOrder
+ * @memberof meerkat.BallotQuestionUIElement
+ * @instance
+ */
+ BallotQuestionUIElement.prototype.RandomizeListOrder = false;
+
+ /**
+ * BallotQuestionUIElement question.
+ * @member {(meerkat.IUIQuestion|null|undefined)}question
+ * @memberof meerkat.BallotQuestionUIElement
+ * @instance
+ */
+ BallotQuestionUIElement.prototype.question = null;
+
+ /**
+ * Creates a new BallotQuestionUIElement instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {meerkat.IBallotQuestionUIElement=} [properties] Properties to set
+ * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement instance
+ */
+ BallotQuestionUIElement.create = function create(properties) {
+ return new BallotQuestionUIElement(properties);
+ };
+
+ /**
+ * Encodes the specified BallotQuestionUIElement message. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {meerkat.IBallotQuestionUIElement} message BallotQuestionUIElement message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BallotQuestionUIElement.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.answers != null && message.hasOwnProperty("answers"))
+ $root.meerkat.UIAnswers.encode(message.answers, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder"))
+ writer.uint32(/* id 2, wireType 0 =*/16).bool(message.RandomizeListOrder);
+ if (message.question != null && message.hasOwnProperty("question"))
+ $root.meerkat.UIQuestion.encode(message.question, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BallotQuestionUIElement message, length delimited. Does not implicitly {@link meerkat.BallotQuestionUIElement.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {meerkat.IBallotQuestionUIElement} message BallotQuestionUIElement message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BallotQuestionUIElement.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BallotQuestionUIElement message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BallotQuestionUIElement.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotQuestionUIElement();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.answers = $root.meerkat.UIAnswers.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.RandomizeListOrder = reader.bool();
+ break;
+ case 3:
+ message.question = $root.meerkat.UIQuestion.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BallotQuestionUIElement message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BallotQuestionUIElement.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BallotQuestionUIElement message.
+ * @function verify
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BallotQuestionUIElement.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.answers != null && message.hasOwnProperty("answers")) {
+ var error = $root.meerkat.UIAnswers.verify(message.answers);
+ if (error)
+ return "answers." + error;
+ }
+ if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder"))
+ if (typeof message.RandomizeListOrder !== "boolean")
+ return "RandomizeListOrder: boolean expected";
+ if (message.question != null && message.hasOwnProperty("question")) {
+ error = $root.meerkat.UIQuestion.verify(message.question);
+ if (error)
+ return "question." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BallotQuestionUIElement message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BallotQuestionUIElement} BallotQuestionUIElement
+ */
+ BallotQuestionUIElement.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BallotQuestionUIElement)
+ return object;
+ var message = new $root.meerkat.BallotQuestionUIElement();
+ if (object.answers != null) {
+ if (typeof object.answers !== "object")
+ throw TypeError(".meerkat.BallotQuestionUIElement.answers: object expected");
+ message.answers = $root.meerkat.UIAnswers.fromObject(object.answers);
+ }
+ if (object.RandomizeListOrder != null)
+ message.RandomizeListOrder = Boolean(object.RandomizeListOrder);
+ if (object.question != null) {
+ if (typeof object.question !== "object")
+ throw TypeError(".meerkat.BallotQuestionUIElement.question: object expected");
+ message.question = $root.meerkat.UIQuestion.fromObject(object.question);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BallotQuestionUIElement message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BallotQuestionUIElement
+ * @static
+ * @param {meerkat.BallotQuestionUIElement} message BallotQuestionUIElement
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BallotQuestionUIElement.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.answers = null;
+ object.RandomizeListOrder = false;
+ object.question = null;
+ }
+ if (message.answers != null && message.hasOwnProperty("answers"))
+ object.answers = $root.meerkat.UIAnswers.toObject(message.answers, options);
+ if (message.RandomizeListOrder != null && message.hasOwnProperty("RandomizeListOrder"))
+ object.RandomizeListOrder = message.RandomizeListOrder;
+ if (message.question != null && message.hasOwnProperty("question"))
+ object.question = $root.meerkat.UIQuestion.toObject(message.question, options);
+ return object;
+ };
+
+ /**
+ * Converts this BallotQuestionUIElement to JSON.
+ * @function toJSON
+ * @memberof meerkat.BallotQuestionUIElement
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BallotQuestionUIElement.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BallotQuestionUIElement;
+ })();
+
+ meerkat.BallotQuestionsUIElements = (function() {
+
+ /**
+ * Properties of a BallotQuestionsUIElements.
+ * @memberof meerkat
+ * @interface IBallotQuestionsUIElements
+ * @property {Array.} [questions] BallotQuestionsUIElements questions
+ */
+
+ /**
+ * Constructs a new BallotQuestionsUIElements.
+ * @memberof meerkat
+ * @classdesc Represents a BallotQuestionsUIElements.
+ * @constructor
+ * @param {meerkat.IBallotQuestionsUIElements=} [properties] Properties to set
+ */
+ function BallotQuestionsUIElements(properties) {
+ this.questions = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BallotQuestionsUIElements questions.
+ * @member {Array.}questions
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @instance
+ */
+ BallotQuestionsUIElements.prototype.questions = $util.emptyArray;
+
+ /**
+ * Creates a new BallotQuestionsUIElements instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {meerkat.IBallotQuestionsUIElements=} [properties] Properties to set
+ * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements instance
+ */
+ BallotQuestionsUIElements.create = function create(properties) {
+ return new BallotQuestionsUIElements(properties);
+ };
+
+ /**
+ * Encodes the specified BallotQuestionsUIElements message. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {meerkat.IBallotQuestionsUIElements} message BallotQuestionsUIElements message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BallotQuestionsUIElements.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.questions != null && message.questions.length)
+ for (var i = 0; i < message.questions.length; ++i)
+ $root.meerkat.BallotQuestionUIElement.encode(message.questions[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BallotQuestionsUIElements message, length delimited. Does not implicitly {@link meerkat.BallotQuestionsUIElements.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {meerkat.IBallotQuestionsUIElements} message BallotQuestionsUIElements message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BallotQuestionsUIElements.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BallotQuestionsUIElements message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BallotQuestionsUIElements.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BallotQuestionsUIElements();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.questions && message.questions.length))
+ message.questions = [];
+ message.questions.push($root.meerkat.BallotQuestionUIElement.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BallotQuestionsUIElements message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BallotQuestionsUIElements.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BallotQuestionsUIElements message.
+ * @function verify
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BallotQuestionsUIElements.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.questions != null && message.hasOwnProperty("questions")) {
+ if (!Array.isArray(message.questions))
+ return "questions: array expected";
+ for (var i = 0; i < message.questions.length; ++i) {
+ var error = $root.meerkat.BallotQuestionUIElement.verify(message.questions[i]);
+ if (error)
+ return "questions." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BallotQuestionsUIElements message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BallotQuestionsUIElements} BallotQuestionsUIElements
+ */
+ BallotQuestionsUIElements.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BallotQuestionsUIElements)
+ return object;
+ var message = new $root.meerkat.BallotQuestionsUIElements();
+ if (object.questions) {
+ if (!Array.isArray(object.questions))
+ throw TypeError(".meerkat.BallotQuestionsUIElements.questions: array expected");
+ message.questions = [];
+ for (var i = 0; i < object.questions.length; ++i) {
+ if (typeof object.questions[i] !== "object")
+ throw TypeError(".meerkat.BallotQuestionsUIElements.questions: object expected");
+ message.questions[i] = $root.meerkat.BallotQuestionUIElement.fromObject(object.questions[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BallotQuestionsUIElements message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @static
+ * @param {meerkat.BallotQuestionsUIElements} message BallotQuestionsUIElements
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BallotQuestionsUIElements.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.questions = [];
+ if (message.questions && message.questions.length) {
+ object.questions = [];
+ for (var j = 0; j < message.questions.length; ++j)
+ object.questions[j] = $root.meerkat.BallotQuestionUIElement.toObject(message.questions[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this BallotQuestionsUIElements to JSON.
+ * @function toJSON
+ * @memberof meerkat.BallotQuestionsUIElements
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BallotQuestionsUIElements.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BallotQuestionsUIElements;
+ })();
+
+ /**
+ * ValueType enum.
+ * @enum {string}
+ * @property {number} TEXT_TYPE=0 TEXT_TYPE value
+ * @property {number} AUDIO_TYPE=1 AUDIO_TYPE value
+ * @property {number} IMAGE_TYPE=2 IMAGE_TYPE value
+ */
+ meerkat.ValueType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "TEXT_TYPE"] = 0;
+ values[valuesById[1] = "AUDIO_TYPE"] = 1;
+ values[valuesById[2] = "IMAGE_TYPE"] = 2;
+ return values;
+ })();
+
+ meerkat.BoolMsg = (function() {
+
+ /**
+ * Properties of a BoolMsg.
+ * @memberof meerkat
+ * @interface IBoolMsg
+ * @property {boolean} [value] BoolMsg value
+ */
+
+ /**
+ * Constructs a new BoolMsg.
+ * @memberof meerkat
+ * @classdesc Represents a BoolMsg.
+ * @constructor
+ * @param {meerkat.IBoolMsg=} [properties] Properties to set
+ */
+ function BoolMsg(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BoolMsg value.
+ * @member {boolean}value
+ * @memberof meerkat.BoolMsg
+ * @instance
+ */
+ BoolMsg.prototype.value = false;
+
+ /**
+ * Creates a new BoolMsg instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {meerkat.IBoolMsg=} [properties] Properties to set
+ * @returns {meerkat.BoolMsg} BoolMsg instance
+ */
+ BoolMsg.create = function create(properties) {
+ return new BoolMsg(properties);
+ };
+
+ /**
+ * Encodes the specified BoolMsg message. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {meerkat.IBoolMsg} message BoolMsg message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BoolMsg.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.value != null && message.hasOwnProperty("value"))
+ writer.uint32(/* id 1, wireType 0 =*/8).bool(message.value);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BoolMsg message, length delimited. Does not implicitly {@link meerkat.BoolMsg.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {meerkat.IBoolMsg} message BoolMsg message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BoolMsg.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BoolMsg message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BoolMsg} BoolMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BoolMsg.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BoolMsg();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.value = reader.bool();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BoolMsg message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BoolMsg} BoolMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BoolMsg.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BoolMsg message.
+ * @function verify
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BoolMsg.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.value != null && message.hasOwnProperty("value"))
+ if (typeof message.value !== "boolean")
+ return "value: boolean expected";
+ return null;
+ };
+
+ /**
+ * Creates a BoolMsg message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BoolMsg} BoolMsg
+ */
+ BoolMsg.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BoolMsg)
+ return object;
+ var message = new $root.meerkat.BoolMsg();
+ if (object.value != null)
+ message.value = Boolean(object.value);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BoolMsg message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BoolMsg
+ * @static
+ * @param {meerkat.BoolMsg} message BoolMsg
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BoolMsg.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.value = false;
+ if (message.value != null && message.hasOwnProperty("value"))
+ object.value = message.value;
+ return object;
+ };
+
+ /**
+ * Converts this BoolMsg to JSON.
+ * @function toJSON
+ * @memberof meerkat.BoolMsg
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BoolMsg.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BoolMsg;
+ })();
+
+ meerkat.IntMsg = (function() {
+
+ /**
+ * Properties of an IntMsg.
+ * @memberof meerkat
+ * @interface IIntMsg
+ * @property {number} [value] IntMsg value
+ */
+
+ /**
+ * Constructs a new IntMsg.
+ * @memberof meerkat
+ * @classdesc Represents an IntMsg.
+ * @constructor
+ * @param {meerkat.IIntMsg=} [properties] Properties to set
+ */
+ function IntMsg(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * IntMsg value.
+ * @member {number}value
+ * @memberof meerkat.IntMsg
+ * @instance
+ */
+ IntMsg.prototype.value = 0;
+
+ /**
+ * Creates a new IntMsg instance using the specified properties.
+ * @function create
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {meerkat.IIntMsg=} [properties] Properties to set
+ * @returns {meerkat.IntMsg} IntMsg instance
+ */
+ IntMsg.create = function create(properties) {
+ return new IntMsg(properties);
+ };
+
+ /**
+ * Encodes the specified IntMsg message. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {meerkat.IIntMsg} message IntMsg message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ IntMsg.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.value != null && message.hasOwnProperty("value"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.value);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified IntMsg message, length delimited. Does not implicitly {@link meerkat.IntMsg.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {meerkat.IIntMsg} message IntMsg message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ IntMsg.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an IntMsg message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.IntMsg} IntMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ IntMsg.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.IntMsg();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.value = reader.int32();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an IntMsg message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.IntMsg} IntMsg
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ IntMsg.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an IntMsg message.
+ * @function verify
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ IntMsg.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.value != null && message.hasOwnProperty("value"))
+ if (!$util.isInteger(message.value))
+ return "value: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates an IntMsg message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.IntMsg} IntMsg
+ */
+ IntMsg.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.IntMsg)
+ return object;
+ var message = new $root.meerkat.IntMsg();
+ if (object.value != null)
+ message.value = object.value | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an IntMsg message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.IntMsg
+ * @static
+ * @param {meerkat.IntMsg} message IntMsg
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ IntMsg.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.value = 0;
+ if (message.value != null && message.hasOwnProperty("value"))
+ object.value = message.value;
+ return object;
+ };
+
+ /**
+ * Converts this IntMsg to JSON.
+ * @function toJSON
+ * @memberof meerkat.IntMsg
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ IntMsg.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return IntMsg;
+ })();
+
+ meerkat.MessageID = (function() {
+
+ /**
+ * Properties of a MessageID.
+ * @memberof meerkat
+ * @interface IMessageID
+ * @property {Uint8Array} [ID] MessageID ID
+ */
+
+ /**
+ * Constructs a new MessageID.
+ * @memberof meerkat
+ * @classdesc Represents a MessageID.
+ * @constructor
+ * @param {meerkat.IMessageID=} [properties] Properties to set
+ */
+ function MessageID(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * MessageID ID.
+ * @member {Uint8Array}ID
+ * @memberof meerkat.MessageID
+ * @instance
+ */
+ MessageID.prototype.ID = $util.newBuffer([]);
+
+ /**
+ * Creates a new MessageID instance using the specified properties.
+ * @function create
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {meerkat.IMessageID=} [properties] Properties to set
+ * @returns {meerkat.MessageID} MessageID instance
+ */
+ MessageID.create = function create(properties) {
+ return new MessageID(properties);
+ };
+
+ /**
+ * Encodes the specified MessageID message. Does not implicitly {@link meerkat.MessageID.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {meerkat.IMessageID} message MessageID message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageID.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.ID != null && message.hasOwnProperty("ID"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.ID);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified MessageID message, length delimited. Does not implicitly {@link meerkat.MessageID.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {meerkat.IMessageID} message MessageID message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageID.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MessageID message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.MessageID} MessageID
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageID.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageID();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.ID = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a MessageID message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.MessageID} MessageID
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageID.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MessageID message.
+ * @function verify
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MessageID.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.ID != null && message.hasOwnProperty("ID"))
+ if (!(message.ID && typeof message.ID.length === "number" || $util.isString(message.ID)))
+ return "ID: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a MessageID message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.MessageID} MessageID
+ */
+ MessageID.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.MessageID)
+ return object;
+ var message = new $root.meerkat.MessageID();
+ if (object.ID != null)
+ if (typeof object.ID === "string")
+ $util.base64.decode(object.ID, message.ID = $util.newBuffer($util.base64.length(object.ID)), 0);
+ else if (object.ID.length)
+ message.ID = object.ID;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MessageID message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.MessageID
+ * @static
+ * @param {meerkat.MessageID} message MessageID
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ MessageID.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.ID = options.bytes === String ? "" : [];
+ if (message.ID != null && message.hasOwnProperty("ID"))
+ object.ID = options.bytes === String ? $util.base64.encode(message.ID, 0, message.ID.length) : options.bytes === Array ? Array.prototype.slice.call(message.ID) : message.ID;
+ return object;
+ };
+
+ /**
+ * Converts this MessageID to JSON.
+ * @function toJSON
+ * @memberof meerkat.MessageID
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ MessageID.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return MessageID;
+ })();
+
+ meerkat.UnsignedBulletinBoardMessage = (function() {
+
+ /**
+ * Properties of an UnsignedBulletinBoardMessage.
+ * @memberof meerkat
+ * @interface IUnsignedBulletinBoardMessage
+ * @property {Array.} [tag] UnsignedBulletinBoardMessage tag
+ * @property {google.protobuf.ITimestamp} [timestamp] UnsignedBulletinBoardMessage timestamp
+ * @property {Uint8Array} [msgId] UnsignedBulletinBoardMessage msgId
+ * @property {Uint8Array} [data] UnsignedBulletinBoardMessage data
+ */
+
+ /**
+ * Constructs a new UnsignedBulletinBoardMessage.
+ * @memberof meerkat
+ * @classdesc Represents an UnsignedBulletinBoardMessage.
+ * @constructor
+ * @param {meerkat.IUnsignedBulletinBoardMessage=} [properties] Properties to set
+ */
+ function UnsignedBulletinBoardMessage(properties) {
+ this.tag = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * UnsignedBulletinBoardMessage tag.
+ * @member {Array.}tag
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ */
+ UnsignedBulletinBoardMessage.prototype.tag = $util.emptyArray;
+
+ /**
+ * UnsignedBulletinBoardMessage timestamp.
+ * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ */
+ UnsignedBulletinBoardMessage.prototype.timestamp = null;
+
+ /**
+ * UnsignedBulletinBoardMessage msgId.
+ * @member {Uint8Array}msgId
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ */
+ UnsignedBulletinBoardMessage.prototype.msgId = $util.newBuffer([]);
+
+ /**
+ * UnsignedBulletinBoardMessage data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ */
+ UnsignedBulletinBoardMessage.prototype.data = $util.newBuffer([]);
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * UnsignedBulletinBoardMessage dataType.
+ * @member {string|undefined} dataType
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ */
+ Object.defineProperty(UnsignedBulletinBoardMessage.prototype, "dataType", {
+ get: $util.oneOfGetter($oneOfFields = ["msgId", "data"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new UnsignedBulletinBoardMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {meerkat.IUnsignedBulletinBoardMessage=} [properties] Properties to set
+ * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage instance
+ */
+ UnsignedBulletinBoardMessage.create = function create(properties) {
+ return new UnsignedBulletinBoardMessage(properties);
+ };
+
+ /**
+ * Encodes the specified UnsignedBulletinBoardMessage message. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {meerkat.IUnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UnsignedBulletinBoardMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.tag != null && message.tag.length)
+ for (var i = 0; i < message.tag.length; ++i)
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.tag[i]);
+ if (message.timestamp != null && message.hasOwnProperty("timestamp"))
+ $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.msgId != null && message.hasOwnProperty("msgId"))
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.msgId);
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified UnsignedBulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.UnsignedBulletinBoardMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {meerkat.IUnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ UnsignedBulletinBoardMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UnsignedBulletinBoardMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.UnsignedBulletinBoardMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.tag && message.tag.length))
+ message.tag = [];
+ message.tag.push(reader.string());
+ break;
+ case 2:
+ message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ case 3:
+ message.msgId = reader.bytes();
+ break;
+ case 4:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an UnsignedBulletinBoardMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ UnsignedBulletinBoardMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an UnsignedBulletinBoardMessage message.
+ * @function verify
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ UnsignedBulletinBoardMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.tag != null && message.hasOwnProperty("tag")) {
+ if (!Array.isArray(message.tag))
+ return "tag: array expected";
+ for (var i = 0; i < message.tag.length; ++i)
+ if (!$util.isString(message.tag[i]))
+ return "tag: string[] expected";
+ }
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
+ var error = $root.google.protobuf.Timestamp.verify(message.timestamp);
+ if (error)
+ return "timestamp." + error;
+ }
+ if (message.msgId != null && message.hasOwnProperty("msgId")) {
+ properties.dataType = 1;
+ if (!(message.msgId && typeof message.msgId.length === "number" || $util.isString(message.msgId)))
+ return "msgId: buffer expected";
+ }
+ if (message.data != null && message.hasOwnProperty("data")) {
+ if (properties.dataType === 1)
+ return "dataType: multiple values";
+ properties.dataType = 1;
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates an UnsignedBulletinBoardMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.UnsignedBulletinBoardMessage} UnsignedBulletinBoardMessage
+ */
+ UnsignedBulletinBoardMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.UnsignedBulletinBoardMessage)
+ return object;
+ var message = new $root.meerkat.UnsignedBulletinBoardMessage();
+ if (object.tag) {
+ if (!Array.isArray(object.tag))
+ throw TypeError(".meerkat.UnsignedBulletinBoardMessage.tag: array expected");
+ message.tag = [];
+ for (var i = 0; i < object.tag.length; ++i)
+ message.tag[i] = String(object.tag[i]);
+ }
+ if (object.timestamp != null) {
+ if (typeof object.timestamp !== "object")
+ throw TypeError(".meerkat.UnsignedBulletinBoardMessage.timestamp: object expected");
+ message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp);
+ }
+ if (object.msgId != null)
+ if (typeof object.msgId === "string")
+ $util.base64.decode(object.msgId, message.msgId = $util.newBuffer($util.base64.length(object.msgId)), 0);
+ else if (object.msgId.length)
+ message.msgId = object.msgId;
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an UnsignedBulletinBoardMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @static
+ * @param {meerkat.UnsignedBulletinBoardMessage} message UnsignedBulletinBoardMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ UnsignedBulletinBoardMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.tag = [];
+ if (options.defaults)
+ object.timestamp = null;
+ if (message.tag && message.tag.length) {
+ object.tag = [];
+ for (var j = 0; j < message.tag.length; ++j)
+ object.tag[j] = message.tag[j];
+ }
+ if (message.timestamp != null && message.hasOwnProperty("timestamp"))
+ object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options);
+ if (message.msgId != null && message.hasOwnProperty("msgId")) {
+ object.msgId = options.bytes === String ? $util.base64.encode(message.msgId, 0, message.msgId.length) : options.bytes === Array ? Array.prototype.slice.call(message.msgId) : message.msgId;
+ if (options.oneofs)
+ object.dataType = "msgId";
+ }
+ if (message.data != null && message.hasOwnProperty("data")) {
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ if (options.oneofs)
+ object.dataType = "data";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this UnsignedBulletinBoardMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.UnsignedBulletinBoardMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ UnsignedBulletinBoardMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return UnsignedBulletinBoardMessage;
+ })();
+
+ meerkat.BulletinBoardMessage = (function() {
+
+ /**
+ * Properties of a BulletinBoardMessage.
+ * @memberof meerkat
+ * @interface IBulletinBoardMessage
+ * @property {number|Long} [entryNum] BulletinBoardMessage entryNum
+ * @property {meerkat.IUnsignedBulletinBoardMessage} [msg] BulletinBoardMessage msg
+ * @property {Array.} [sig] BulletinBoardMessage sig
+ */
+
+ /**
+ * Constructs a new BulletinBoardMessage.
+ * @memberof meerkat
+ * @classdesc Represents a BulletinBoardMessage.
+ * @constructor
+ * @param {meerkat.IBulletinBoardMessage=} [properties] Properties to set
+ */
+ function BulletinBoardMessage(properties) {
+ this.sig = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BulletinBoardMessage entryNum.
+ * @member {number|Long}entryNum
+ * @memberof meerkat.BulletinBoardMessage
+ * @instance
+ */
+ BulletinBoardMessage.prototype.entryNum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * BulletinBoardMessage msg.
+ * @member {(meerkat.IUnsignedBulletinBoardMessage|null|undefined)}msg
+ * @memberof meerkat.BulletinBoardMessage
+ * @instance
+ */
+ BulletinBoardMessage.prototype.msg = null;
+
+ /**
+ * BulletinBoardMessage sig.
+ * @member {Array.}sig
+ * @memberof meerkat.BulletinBoardMessage
+ * @instance
+ */
+ BulletinBoardMessage.prototype.sig = $util.emptyArray;
+
+ /**
+ * Creates a new BulletinBoardMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {meerkat.IBulletinBoardMessage=} [properties] Properties to set
+ * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage instance
+ */
+ BulletinBoardMessage.create = function create(properties) {
+ return new BulletinBoardMessage(properties);
+ };
+
+ /**
+ * Encodes the specified BulletinBoardMessage message. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {meerkat.IBulletinBoardMessage} message BulletinBoardMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BulletinBoardMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.entryNum != null && message.hasOwnProperty("entryNum"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.entryNum);
+ if (message.msg != null && message.hasOwnProperty("msg"))
+ $root.meerkat.UnsignedBulletinBoardMessage.encode(message.msg, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.sig != null && message.sig.length)
+ for (var i = 0; i < message.sig.length; ++i)
+ $root.meerkat.Signature.encode(message.sig[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BulletinBoardMessage message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {meerkat.IBulletinBoardMessage} message BulletinBoardMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BulletinBoardMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BulletinBoardMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BulletinBoardMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BulletinBoardMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.entryNum = reader.int64();
+ break;
+ case 2:
+ message.msg = $root.meerkat.UnsignedBulletinBoardMessage.decode(reader, reader.uint32());
+ break;
+ case 3:
+ if (!(message.sig && message.sig.length))
+ message.sig = [];
+ message.sig.push($root.meerkat.Signature.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BulletinBoardMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BulletinBoardMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BulletinBoardMessage message.
+ * @function verify
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BulletinBoardMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.entryNum != null && message.hasOwnProperty("entryNum"))
+ if (!$util.isInteger(message.entryNum) && !(message.entryNum && $util.isInteger(message.entryNum.low) && $util.isInteger(message.entryNum.high)))
+ return "entryNum: integer|Long expected";
+ if (message.msg != null && message.hasOwnProperty("msg")) {
+ var error = $root.meerkat.UnsignedBulletinBoardMessage.verify(message.msg);
+ if (error)
+ return "msg." + error;
+ }
+ if (message.sig != null && message.hasOwnProperty("sig")) {
+ if (!Array.isArray(message.sig))
+ return "sig: array expected";
+ for (var i = 0; i < message.sig.length; ++i) {
+ error = $root.meerkat.Signature.verify(message.sig[i]);
+ if (error)
+ return "sig." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BulletinBoardMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BulletinBoardMessage} BulletinBoardMessage
+ */
+ BulletinBoardMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BulletinBoardMessage)
+ return object;
+ var message = new $root.meerkat.BulletinBoardMessage();
+ if (object.entryNum != null)
+ if ($util.Long)
+ (message.entryNum = $util.Long.fromValue(object.entryNum)).unsigned = false;
+ else if (typeof object.entryNum === "string")
+ message.entryNum = parseInt(object.entryNum, 10);
+ else if (typeof object.entryNum === "number")
+ message.entryNum = object.entryNum;
+ else if (typeof object.entryNum === "object")
+ message.entryNum = new $util.LongBits(object.entryNum.low >>> 0, object.entryNum.high >>> 0).toNumber();
+ if (object.msg != null) {
+ if (typeof object.msg !== "object")
+ throw TypeError(".meerkat.BulletinBoardMessage.msg: object expected");
+ message.msg = $root.meerkat.UnsignedBulletinBoardMessage.fromObject(object.msg);
+ }
+ if (object.sig) {
+ if (!Array.isArray(object.sig))
+ throw TypeError(".meerkat.BulletinBoardMessage.sig: array expected");
+ message.sig = [];
+ for (var i = 0; i < object.sig.length; ++i) {
+ if (typeof object.sig[i] !== "object")
+ throw TypeError(".meerkat.BulletinBoardMessage.sig: object expected");
+ message.sig[i] = $root.meerkat.Signature.fromObject(object.sig[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BulletinBoardMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BulletinBoardMessage
+ * @static
+ * @param {meerkat.BulletinBoardMessage} message BulletinBoardMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BulletinBoardMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.sig = [];
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.entryNum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.entryNum = options.longs === String ? "0" : 0;
+ object.msg = null;
+ }
+ if (message.entryNum != null && message.hasOwnProperty("entryNum"))
+ if (typeof message.entryNum === "number")
+ object.entryNum = options.longs === String ? String(message.entryNum) : message.entryNum;
+ else
+ object.entryNum = options.longs === String ? $util.Long.prototype.toString.call(message.entryNum) : options.longs === Number ? new $util.LongBits(message.entryNum.low >>> 0, message.entryNum.high >>> 0).toNumber() : message.entryNum;
+ if (message.msg != null && message.hasOwnProperty("msg"))
+ object.msg = $root.meerkat.UnsignedBulletinBoardMessage.toObject(message.msg, options);
+ if (message.sig && message.sig.length) {
+ object.sig = [];
+ for (var j = 0; j < message.sig.length; ++j)
+ object.sig[j] = $root.meerkat.Signature.toObject(message.sig[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this BulletinBoardMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.BulletinBoardMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BulletinBoardMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BulletinBoardMessage;
+ })();
+
+ meerkat.BulletinBoardMessageList = (function() {
+
+ /**
+ * Properties of a BulletinBoardMessageList.
+ * @memberof meerkat
+ * @interface IBulletinBoardMessageList
+ * @property {Array.} [message] BulletinBoardMessageList message
+ */
+
+ /**
+ * Constructs a new BulletinBoardMessageList.
+ * @memberof meerkat
+ * @classdesc Represents a BulletinBoardMessageList.
+ * @constructor
+ * @param {meerkat.IBulletinBoardMessageList=} [properties] Properties to set
+ */
+ function BulletinBoardMessageList(properties) {
+ this.message = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BulletinBoardMessageList message.
+ * @member {Array.}message
+ * @memberof meerkat.BulletinBoardMessageList
+ * @instance
+ */
+ BulletinBoardMessageList.prototype.message = $util.emptyArray;
+
+ /**
+ * Creates a new BulletinBoardMessageList instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {meerkat.IBulletinBoardMessageList=} [properties] Properties to set
+ * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList instance
+ */
+ BulletinBoardMessageList.create = function create(properties) {
+ return new BulletinBoardMessageList(properties);
+ };
+
+ /**
+ * Encodes the specified BulletinBoardMessageList message. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {meerkat.IBulletinBoardMessageList} message BulletinBoardMessageList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BulletinBoardMessageList.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.message != null && message.message.length)
+ for (var i = 0; i < message.message.length; ++i)
+ $root.meerkat.BulletinBoardMessage.encode(message.message[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BulletinBoardMessageList message, length delimited. Does not implicitly {@link meerkat.BulletinBoardMessageList.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {meerkat.IBulletinBoardMessageList} message BulletinBoardMessageList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BulletinBoardMessageList.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BulletinBoardMessageList message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BulletinBoardMessageList.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BulletinBoardMessageList();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.message && message.message.length))
+ message.message = [];
+ message.message.push($root.meerkat.BulletinBoardMessage.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BulletinBoardMessageList message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BulletinBoardMessageList.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BulletinBoardMessageList message.
+ * @function verify
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BulletinBoardMessageList.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.message != null && message.hasOwnProperty("message")) {
+ if (!Array.isArray(message.message))
+ return "message: array expected";
+ for (var i = 0; i < message.message.length; ++i) {
+ var error = $root.meerkat.BulletinBoardMessage.verify(message.message[i]);
+ if (error)
+ return "message." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BulletinBoardMessageList message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BulletinBoardMessageList} BulletinBoardMessageList
+ */
+ BulletinBoardMessageList.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BulletinBoardMessageList)
+ return object;
+ var message = new $root.meerkat.BulletinBoardMessageList();
+ if (object.message) {
+ if (!Array.isArray(object.message))
+ throw TypeError(".meerkat.BulletinBoardMessageList.message: array expected");
+ message.message = [];
+ for (var i = 0; i < object.message.length; ++i) {
+ if (typeof object.message[i] !== "object")
+ throw TypeError(".meerkat.BulletinBoardMessageList.message: object expected");
+ message.message[i] = $root.meerkat.BulletinBoardMessage.fromObject(object.message[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BulletinBoardMessageList message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BulletinBoardMessageList
+ * @static
+ * @param {meerkat.BulletinBoardMessageList} message BulletinBoardMessageList
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BulletinBoardMessageList.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.message = [];
+ if (message.message && message.message.length) {
+ object.message = [];
+ for (var j = 0; j < message.message.length; ++j)
+ object.message[j] = $root.meerkat.BulletinBoardMessage.toObject(message.message[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this BulletinBoardMessageList to JSON.
+ * @function toJSON
+ * @memberof meerkat.BulletinBoardMessageList
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BulletinBoardMessageList.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BulletinBoardMessageList;
+ })();
+
+ /**
+ * FilterType enum.
+ * @enum {string}
+ * @property {number} MSG_ID=0 MSG_ID value
+ * @property {number} EXACT_ENTRY=1 EXACT_ENTRY value
+ * @property {number} MAX_ENTRY=2 MAX_ENTRY value
+ * @property {number} MIN_ENTRY=3 MIN_ENTRY value
+ * @property {number} SIGNER_ID=4 SIGNER_ID value
+ * @property {number} TAG=5 TAG value
+ * @property {number} AFTER_TIME=6 AFTER_TIME value
+ * @property {number} BEFORE_TIME=7 BEFORE_TIME value
+ * @property {number} MAX_MESSAGES=8 MAX_MESSAGES value
+ */
+ meerkat.FilterType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "MSG_ID"] = 0;
+ values[valuesById[1] = "EXACT_ENTRY"] = 1;
+ values[valuesById[2] = "MAX_ENTRY"] = 2;
+ values[valuesById[3] = "MIN_ENTRY"] = 3;
+ values[valuesById[4] = "SIGNER_ID"] = 4;
+ values[valuesById[5] = "TAG"] = 5;
+ values[valuesById[6] = "AFTER_TIME"] = 6;
+ values[valuesById[7] = "BEFORE_TIME"] = 7;
+ values[valuesById[8] = "MAX_MESSAGES"] = 8;
+ return values;
+ })();
+
+ meerkat.MessageFilter = (function() {
+
+ /**
+ * Properties of a MessageFilter.
+ * @memberof meerkat
+ * @interface IMessageFilter
+ * @property {meerkat.FilterType} [type] MessageFilter type
+ * @property {Uint8Array} [id] MessageFilter id
+ * @property {number|Long} [entry] MessageFilter entry
+ * @property {string} [tag] MessageFilter tag
+ * @property {number|Long} [maxMessages] MessageFilter maxMessages
+ * @property {google.protobuf.ITimestamp} [timestamp] MessageFilter timestamp
+ */
+
+ /**
+ * Constructs a new MessageFilter.
+ * @memberof meerkat
+ * @classdesc Represents a MessageFilter.
+ * @constructor
+ * @param {meerkat.IMessageFilter=} [properties] Properties to set
+ */
+ function MessageFilter(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * MessageFilter type.
+ * @member {meerkat.FilterType}type
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.type = 0;
+
+ /**
+ * MessageFilter id.
+ * @member {Uint8Array}id
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.id = $util.newBuffer([]);
+
+ /**
+ * MessageFilter entry.
+ * @member {number|Long}entry
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.entry = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * MessageFilter tag.
+ * @member {string}tag
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.tag = "";
+
+ /**
+ * MessageFilter maxMessages.
+ * @member {number|Long}maxMessages
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.maxMessages = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * MessageFilter timestamp.
+ * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ MessageFilter.prototype.timestamp = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * MessageFilter filter.
+ * @member {string|undefined} filter
+ * @memberof meerkat.MessageFilter
+ * @instance
+ */
+ Object.defineProperty(MessageFilter.prototype, "filter", {
+ get: $util.oneOfGetter($oneOfFields = ["id", "entry", "tag", "maxMessages", "timestamp"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new MessageFilter instance using the specified properties.
+ * @function create
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {meerkat.IMessageFilter=} [properties] Properties to set
+ * @returns {meerkat.MessageFilter} MessageFilter instance
+ */
+ MessageFilter.create = function create(properties) {
+ return new MessageFilter(properties);
+ };
+
+ /**
+ * Encodes the specified MessageFilter message. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {meerkat.IMessageFilter} message MessageFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageFilter.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.type != null && message.hasOwnProperty("type"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
+ if (message.id != null && message.hasOwnProperty("id"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.id);
+ if (message.entry != null && message.hasOwnProperty("entry"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int64(message.entry);
+ if (message.tag != null && message.hasOwnProperty("tag"))
+ writer.uint32(/* id 4, wireType 2 =*/34).string(message.tag);
+ if (message.maxMessages != null && message.hasOwnProperty("maxMessages"))
+ writer.uint32(/* id 5, wireType 0 =*/40).int64(message.maxMessages);
+ if (message.timestamp != null && message.hasOwnProperty("timestamp"))
+ $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified MessageFilter message, length delimited. Does not implicitly {@link meerkat.MessageFilter.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {meerkat.IMessageFilter} message MessageFilter message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageFilter.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MessageFilter message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.MessageFilter} MessageFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageFilter.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageFilter();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.type = reader.int32();
+ break;
+ case 2:
+ message.id = reader.bytes();
+ break;
+ case 3:
+ message.entry = reader.int64();
+ break;
+ case 4:
+ message.tag = reader.string();
+ break;
+ case 5:
+ message.maxMessages = reader.int64();
+ break;
+ case 6:
+ message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a MessageFilter message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.MessageFilter} MessageFilter
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageFilter.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MessageFilter message.
+ * @function verify
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MessageFilter.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.type != null && message.hasOwnProperty("type"))
+ switch (message.type) {
+ default:
+ return "type: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ break;
+ }
+ if (message.id != null && message.hasOwnProperty("id")) {
+ properties.filter = 1;
+ if (!(message.id && typeof message.id.length === "number" || $util.isString(message.id)))
+ return "id: buffer expected";
+ }
+ if (message.entry != null && message.hasOwnProperty("entry")) {
+ if (properties.filter === 1)
+ return "filter: multiple values";
+ properties.filter = 1;
+ if (!$util.isInteger(message.entry) && !(message.entry && $util.isInteger(message.entry.low) && $util.isInteger(message.entry.high)))
+ return "entry: integer|Long expected";
+ }
+ if (message.tag != null && message.hasOwnProperty("tag")) {
+ if (properties.filter === 1)
+ return "filter: multiple values";
+ properties.filter = 1;
+ if (!$util.isString(message.tag))
+ return "tag: string expected";
+ }
+ if (message.maxMessages != null && message.hasOwnProperty("maxMessages")) {
+ if (properties.filter === 1)
+ return "filter: multiple values";
+ properties.filter = 1;
+ if (!$util.isInteger(message.maxMessages) && !(message.maxMessages && $util.isInteger(message.maxMessages.low) && $util.isInteger(message.maxMessages.high)))
+ return "maxMessages: integer|Long expected";
+ }
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
+ if (properties.filter === 1)
+ return "filter: multiple values";
+ properties.filter = 1;
+ var error = $root.google.protobuf.Timestamp.verify(message.timestamp);
+ if (error)
+ return "timestamp." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a MessageFilter message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.MessageFilter} MessageFilter
+ */
+ MessageFilter.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.MessageFilter)
+ return object;
+ var message = new $root.meerkat.MessageFilter();
+ switch (object.type) {
+ case "MSG_ID":
+ case 0:
+ message.type = 0;
+ break;
+ case "EXACT_ENTRY":
+ case 1:
+ message.type = 1;
+ break;
+ case "MAX_ENTRY":
+ case 2:
+ message.type = 2;
+ break;
+ case "MIN_ENTRY":
+ case 3:
+ message.type = 3;
+ break;
+ case "SIGNER_ID":
+ case 4:
+ message.type = 4;
+ break;
+ case "TAG":
+ case 5:
+ message.type = 5;
+ break;
+ case "AFTER_TIME":
+ case 6:
+ message.type = 6;
+ break;
+ case "BEFORE_TIME":
+ case 7:
+ message.type = 7;
+ break;
+ case "MAX_MESSAGES":
+ case 8:
+ message.type = 8;
+ break;
+ }
+ if (object.id != null)
+ if (typeof object.id === "string")
+ $util.base64.decode(object.id, message.id = $util.newBuffer($util.base64.length(object.id)), 0);
+ else if (object.id.length)
+ message.id = object.id;
+ if (object.entry != null)
+ if ($util.Long)
+ (message.entry = $util.Long.fromValue(object.entry)).unsigned = false;
+ else if (typeof object.entry === "string")
+ message.entry = parseInt(object.entry, 10);
+ else if (typeof object.entry === "number")
+ message.entry = object.entry;
+ else if (typeof object.entry === "object")
+ message.entry = new $util.LongBits(object.entry.low >>> 0, object.entry.high >>> 0).toNumber();
+ if (object.tag != null)
+ message.tag = String(object.tag);
+ if (object.maxMessages != null)
+ if ($util.Long)
+ (message.maxMessages = $util.Long.fromValue(object.maxMessages)).unsigned = false;
+ else if (typeof object.maxMessages === "string")
+ message.maxMessages = parseInt(object.maxMessages, 10);
+ else if (typeof object.maxMessages === "number")
+ message.maxMessages = object.maxMessages;
+ else if (typeof object.maxMessages === "object")
+ message.maxMessages = new $util.LongBits(object.maxMessages.low >>> 0, object.maxMessages.high >>> 0).toNumber();
+ if (object.timestamp != null) {
+ if (typeof object.timestamp !== "object")
+ throw TypeError(".meerkat.MessageFilter.timestamp: object expected");
+ message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MessageFilter message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.MessageFilter
+ * @static
+ * @param {meerkat.MessageFilter} message MessageFilter
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ MessageFilter.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.type = options.enums === String ? "MSG_ID" : 0;
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = options.enums === String ? $root.meerkat.FilterType[message.type] : message.type;
+ if (message.id != null && message.hasOwnProperty("id")) {
+ object.id = options.bytes === String ? $util.base64.encode(message.id, 0, message.id.length) : options.bytes === Array ? Array.prototype.slice.call(message.id) : message.id;
+ if (options.oneofs)
+ object.filter = "id";
+ }
+ if (message.entry != null && message.hasOwnProperty("entry")) {
+ if (typeof message.entry === "number")
+ object.entry = options.longs === String ? String(message.entry) : message.entry;
+ else
+ object.entry = options.longs === String ? $util.Long.prototype.toString.call(message.entry) : options.longs === Number ? new $util.LongBits(message.entry.low >>> 0, message.entry.high >>> 0).toNumber() : message.entry;
+ if (options.oneofs)
+ object.filter = "entry";
+ }
+ if (message.tag != null && message.hasOwnProperty("tag")) {
+ object.tag = message.tag;
+ if (options.oneofs)
+ object.filter = "tag";
+ }
+ if (message.maxMessages != null && message.hasOwnProperty("maxMessages")) {
+ if (typeof message.maxMessages === "number")
+ object.maxMessages = options.longs === String ? String(message.maxMessages) : message.maxMessages;
+ else
+ object.maxMessages = options.longs === String ? $util.Long.prototype.toString.call(message.maxMessages) : options.longs === Number ? new $util.LongBits(message.maxMessages.low >>> 0, message.maxMessages.high >>> 0).toNumber() : message.maxMessages;
+ if (options.oneofs)
+ object.filter = "maxMessages";
+ }
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
+ object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options);
+ if (options.oneofs)
+ object.filter = "timestamp";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this MessageFilter to JSON.
+ * @function toJSON
+ * @memberof meerkat.MessageFilter
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ MessageFilter.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return MessageFilter;
+ })();
+
+ meerkat.MessageFilterList = (function() {
+
+ /**
+ * Properties of a MessageFilterList.
+ * @memberof meerkat
+ * @interface IMessageFilterList
+ * @property {Array.} [filter] MessageFilterList filter
+ */
+
+ /**
+ * Constructs a new MessageFilterList.
+ * @memberof meerkat
+ * @classdesc Represents a MessageFilterList.
+ * @constructor
+ * @param {meerkat.IMessageFilterList=} [properties] Properties to set
+ */
+ function MessageFilterList(properties) {
+ this.filter = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * MessageFilterList filter.
+ * @member {Array.}filter
+ * @memberof meerkat.MessageFilterList
+ * @instance
+ */
+ MessageFilterList.prototype.filter = $util.emptyArray;
+
+ /**
+ * Creates a new MessageFilterList instance using the specified properties.
+ * @function create
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {meerkat.IMessageFilterList=} [properties] Properties to set
+ * @returns {meerkat.MessageFilterList} MessageFilterList instance
+ */
+ MessageFilterList.create = function create(properties) {
+ return new MessageFilterList(properties);
+ };
+
+ /**
+ * Encodes the specified MessageFilterList message. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {meerkat.IMessageFilterList} message MessageFilterList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageFilterList.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filter != null && message.filter.length)
+ for (var i = 0; i < message.filter.length; ++i)
+ $root.meerkat.MessageFilter.encode(message.filter[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified MessageFilterList message, length delimited. Does not implicitly {@link meerkat.MessageFilterList.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {meerkat.IMessageFilterList} message MessageFilterList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MessageFilterList.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MessageFilterList message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.MessageFilterList} MessageFilterList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageFilterList.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MessageFilterList();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.filter && message.filter.length))
+ message.filter = [];
+ message.filter.push($root.meerkat.MessageFilter.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a MessageFilterList message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.MessageFilterList} MessageFilterList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MessageFilterList.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MessageFilterList message.
+ * @function verify
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MessageFilterList.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.filter != null && message.hasOwnProperty("filter")) {
+ if (!Array.isArray(message.filter))
+ return "filter: array expected";
+ for (var i = 0; i < message.filter.length; ++i) {
+ var error = $root.meerkat.MessageFilter.verify(message.filter[i]);
+ if (error)
+ return "filter." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a MessageFilterList message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.MessageFilterList} MessageFilterList
+ */
+ MessageFilterList.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.MessageFilterList)
+ return object;
+ var message = new $root.meerkat.MessageFilterList();
+ if (object.filter) {
+ if (!Array.isArray(object.filter))
+ throw TypeError(".meerkat.MessageFilterList.filter: array expected");
+ message.filter = [];
+ for (var i = 0; i < object.filter.length; ++i) {
+ if (typeof object.filter[i] !== "object")
+ throw TypeError(".meerkat.MessageFilterList.filter: object expected");
+ message.filter[i] = $root.meerkat.MessageFilter.fromObject(object.filter[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MessageFilterList message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.MessageFilterList
+ * @static
+ * @param {meerkat.MessageFilterList} message MessageFilterList
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ MessageFilterList.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.filter = [];
+ if (message.filter && message.filter.length) {
+ object.filter = [];
+ for (var j = 0; j < message.filter.length; ++j)
+ object.filter[j] = $root.meerkat.MessageFilter.toObject(message.filter[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this MessageFilterList to JSON.
+ * @function toJSON
+ * @memberof meerkat.MessageFilterList
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ MessageFilterList.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return MessageFilterList;
+ })();
+
+ meerkat.BeginBatchMessage = (function() {
+
+ /**
+ * Properties of a BeginBatchMessage.
+ * @memberof meerkat
+ * @interface IBeginBatchMessage
+ * @property {Array.} [tag] BeginBatchMessage tag
+ */
+
+ /**
+ * Constructs a new BeginBatchMessage.
+ * @memberof meerkat
+ * @classdesc Represents a BeginBatchMessage.
+ * @constructor
+ * @param {meerkat.IBeginBatchMessage=} [properties] Properties to set
+ */
+ function BeginBatchMessage(properties) {
+ this.tag = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BeginBatchMessage tag.
+ * @member {Array.}tag
+ * @memberof meerkat.BeginBatchMessage
+ * @instance
+ */
+ BeginBatchMessage.prototype.tag = $util.emptyArray;
+
+ /**
+ * Creates a new BeginBatchMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {meerkat.IBeginBatchMessage=} [properties] Properties to set
+ * @returns {meerkat.BeginBatchMessage} BeginBatchMessage instance
+ */
+ BeginBatchMessage.create = function create(properties) {
+ return new BeginBatchMessage(properties);
+ };
+
+ /**
+ * Encodes the specified BeginBatchMessage message. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {meerkat.IBeginBatchMessage} message BeginBatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BeginBatchMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.tag != null && message.tag.length)
+ for (var i = 0; i < message.tag.length; ++i)
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.tag[i]);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BeginBatchMessage message, length delimited. Does not implicitly {@link meerkat.BeginBatchMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {meerkat.IBeginBatchMessage} message BeginBatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BeginBatchMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BeginBatchMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BeginBatchMessage} BeginBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BeginBatchMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BeginBatchMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.tag && message.tag.length))
+ message.tag = [];
+ message.tag.push(reader.string());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BeginBatchMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BeginBatchMessage} BeginBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BeginBatchMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BeginBatchMessage message.
+ * @function verify
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BeginBatchMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.tag != null && message.hasOwnProperty("tag")) {
+ if (!Array.isArray(message.tag))
+ return "tag: array expected";
+ for (var i = 0; i < message.tag.length; ++i)
+ if (!$util.isString(message.tag[i]))
+ return "tag: string[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BeginBatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BeginBatchMessage} BeginBatchMessage
+ */
+ BeginBatchMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BeginBatchMessage)
+ return object;
+ var message = new $root.meerkat.BeginBatchMessage();
+ if (object.tag) {
+ if (!Array.isArray(object.tag))
+ throw TypeError(".meerkat.BeginBatchMessage.tag: array expected");
+ message.tag = [];
+ for (var i = 0; i < object.tag.length; ++i)
+ message.tag[i] = String(object.tag[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BeginBatchMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BeginBatchMessage
+ * @static
+ * @param {meerkat.BeginBatchMessage} message BeginBatchMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BeginBatchMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.tag = [];
+ if (message.tag && message.tag.length) {
+ object.tag = [];
+ for (var j = 0; j < message.tag.length; ++j)
+ object.tag[j] = message.tag[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this BeginBatchMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.BeginBatchMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BeginBatchMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BeginBatchMessage;
+ })();
+
+ meerkat.CloseBatchMessage = (function() {
+
+ /**
+ * Properties of a CloseBatchMessage.
+ * @memberof meerkat
+ * @interface ICloseBatchMessage
+ * @property {number|Long} [batchId] CloseBatchMessage batchId
+ * @property {number} [batchLength] CloseBatchMessage batchLength
+ * @property {google.protobuf.ITimestamp} [timestamp] CloseBatchMessage timestamp
+ * @property {Array.} [sig] CloseBatchMessage sig
+ */
+
+ /**
+ * Constructs a new CloseBatchMessage.
+ * @memberof meerkat
+ * @classdesc Represents a CloseBatchMessage.
+ * @constructor
+ * @param {meerkat.ICloseBatchMessage=} [properties] Properties to set
+ */
+ function CloseBatchMessage(properties) {
+ this.sig = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * CloseBatchMessage batchId.
+ * @member {number|Long}batchId
+ * @memberof meerkat.CloseBatchMessage
+ * @instance
+ */
+ CloseBatchMessage.prototype.batchId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * CloseBatchMessage batchLength.
+ * @member {number}batchLength
+ * @memberof meerkat.CloseBatchMessage
+ * @instance
+ */
+ CloseBatchMessage.prototype.batchLength = 0;
+
+ /**
+ * CloseBatchMessage timestamp.
+ * @member {(google.protobuf.ITimestamp|null|undefined)}timestamp
+ * @memberof meerkat.CloseBatchMessage
+ * @instance
+ */
+ CloseBatchMessage.prototype.timestamp = null;
+
+ /**
+ * CloseBatchMessage sig.
+ * @member {Array.}sig
+ * @memberof meerkat.CloseBatchMessage
+ * @instance
+ */
+ CloseBatchMessage.prototype.sig = $util.emptyArray;
+
+ /**
+ * Creates a new CloseBatchMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {meerkat.ICloseBatchMessage=} [properties] Properties to set
+ * @returns {meerkat.CloseBatchMessage} CloseBatchMessage instance
+ */
+ CloseBatchMessage.create = function create(properties) {
+ return new CloseBatchMessage(properties);
+ };
+
+ /**
+ * Encodes the specified CloseBatchMessage message. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {meerkat.ICloseBatchMessage} message CloseBatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CloseBatchMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.batchId);
+ if (message.batchLength != null && message.hasOwnProperty("batchLength"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.batchLength);
+ if (message.timestamp != null && message.hasOwnProperty("timestamp"))
+ $root.google.protobuf.Timestamp.encode(message.timestamp, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.sig != null && message.sig.length)
+ for (var i = 0; i < message.sig.length; ++i)
+ $root.meerkat.Signature.encode(message.sig[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified CloseBatchMessage message, length delimited. Does not implicitly {@link meerkat.CloseBatchMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {meerkat.ICloseBatchMessage} message CloseBatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CloseBatchMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a CloseBatchMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.CloseBatchMessage} CloseBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CloseBatchMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.CloseBatchMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.batchId = reader.int64();
+ break;
+ case 2:
+ message.batchLength = reader.int32();
+ break;
+ case 3:
+ message.timestamp = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ case 4:
+ if (!(message.sig && message.sig.length))
+ message.sig = [];
+ message.sig.push($root.meerkat.Signature.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a CloseBatchMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.CloseBatchMessage} CloseBatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CloseBatchMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a CloseBatchMessage message.
+ * @function verify
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ CloseBatchMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ if (!$util.isInteger(message.batchId) && !(message.batchId && $util.isInteger(message.batchId.low) && $util.isInteger(message.batchId.high)))
+ return "batchId: integer|Long expected";
+ if (message.batchLength != null && message.hasOwnProperty("batchLength"))
+ if (!$util.isInteger(message.batchLength))
+ return "batchLength: integer expected";
+ if (message.timestamp != null && message.hasOwnProperty("timestamp")) {
+ var error = $root.google.protobuf.Timestamp.verify(message.timestamp);
+ if (error)
+ return "timestamp." + error;
+ }
+ if (message.sig != null && message.hasOwnProperty("sig")) {
+ if (!Array.isArray(message.sig))
+ return "sig: array expected";
+ for (var i = 0; i < message.sig.length; ++i) {
+ error = $root.meerkat.Signature.verify(message.sig[i]);
+ if (error)
+ return "sig." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a CloseBatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.CloseBatchMessage} CloseBatchMessage
+ */
+ CloseBatchMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.CloseBatchMessage)
+ return object;
+ var message = new $root.meerkat.CloseBatchMessage();
+ if (object.batchId != null)
+ if ($util.Long)
+ (message.batchId = $util.Long.fromValue(object.batchId)).unsigned = false;
+ else if (typeof object.batchId === "string")
+ message.batchId = parseInt(object.batchId, 10);
+ else if (typeof object.batchId === "number")
+ message.batchId = object.batchId;
+ else if (typeof object.batchId === "object")
+ message.batchId = new $util.LongBits(object.batchId.low >>> 0, object.batchId.high >>> 0).toNumber();
+ if (object.batchLength != null)
+ message.batchLength = object.batchLength | 0;
+ if (object.timestamp != null) {
+ if (typeof object.timestamp !== "object")
+ throw TypeError(".meerkat.CloseBatchMessage.timestamp: object expected");
+ message.timestamp = $root.google.protobuf.Timestamp.fromObject(object.timestamp);
+ }
+ if (object.sig) {
+ if (!Array.isArray(object.sig))
+ throw TypeError(".meerkat.CloseBatchMessage.sig: array expected");
+ message.sig = [];
+ for (var i = 0; i < object.sig.length; ++i) {
+ if (typeof object.sig[i] !== "object")
+ throw TypeError(".meerkat.CloseBatchMessage.sig: object expected");
+ message.sig[i] = $root.meerkat.Signature.fromObject(object.sig[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a CloseBatchMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.CloseBatchMessage
+ * @static
+ * @param {meerkat.CloseBatchMessage} message CloseBatchMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ CloseBatchMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.sig = [];
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.batchId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.batchId = options.longs === String ? "0" : 0;
+ object.batchLength = 0;
+ object.timestamp = null;
+ }
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ if (typeof message.batchId === "number")
+ object.batchId = options.longs === String ? String(message.batchId) : message.batchId;
+ else
+ object.batchId = options.longs === String ? $util.Long.prototype.toString.call(message.batchId) : options.longs === Number ? new $util.LongBits(message.batchId.low >>> 0, message.batchId.high >>> 0).toNumber() : message.batchId;
+ if (message.batchLength != null && message.hasOwnProperty("batchLength"))
+ object.batchLength = message.batchLength;
+ if (message.timestamp != null && message.hasOwnProperty("timestamp"))
+ object.timestamp = $root.google.protobuf.Timestamp.toObject(message.timestamp, options);
+ if (message.sig && message.sig.length) {
+ object.sig = [];
+ for (var j = 0; j < message.sig.length; ++j)
+ object.sig[j] = $root.meerkat.Signature.toObject(message.sig[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this CloseBatchMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.CloseBatchMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ CloseBatchMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return CloseBatchMessage;
+ })();
+
+ meerkat.BatchChunk = (function() {
+
+ /**
+ * Properties of a BatchChunk.
+ * @memberof meerkat
+ * @interface IBatchChunk
+ * @property {Uint8Array} [data] BatchChunk data
+ */
+
+ /**
+ * Constructs a new BatchChunk.
+ * @memberof meerkat
+ * @classdesc Represents a BatchChunk.
+ * @constructor
+ * @param {meerkat.IBatchChunk=} [properties] Properties to set
+ */
+ function BatchChunk(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BatchChunk data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.BatchChunk
+ * @instance
+ */
+ BatchChunk.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new BatchChunk instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {meerkat.IBatchChunk=} [properties] Properties to set
+ * @returns {meerkat.BatchChunk} BatchChunk instance
+ */
+ BatchChunk.create = function create(properties) {
+ return new BatchChunk(properties);
+ };
+
+ /**
+ * Encodes the specified BatchChunk message. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {meerkat.IBatchChunk} message BatchChunk message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchChunk.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BatchChunk message, length delimited. Does not implicitly {@link meerkat.BatchChunk.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {meerkat.IBatchChunk} message BatchChunk message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchChunk.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BatchChunk message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BatchChunk} BatchChunk
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchChunk.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchChunk();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BatchChunk message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BatchChunk} BatchChunk
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchChunk.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BatchChunk message.
+ * @function verify
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BatchChunk.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a BatchChunk message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BatchChunk} BatchChunk
+ */
+ BatchChunk.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BatchChunk)
+ return object;
+ var message = new $root.meerkat.BatchChunk();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BatchChunk message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BatchChunk
+ * @static
+ * @param {meerkat.BatchChunk} message BatchChunk
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BatchChunk.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this BatchChunk to JSON.
+ * @function toJSON
+ * @memberof meerkat.BatchChunk
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BatchChunk.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BatchChunk;
+ })();
+
+ meerkat.BatchChunkList = (function() {
+
+ /**
+ * Properties of a BatchChunkList.
+ * @memberof meerkat
+ * @interface IBatchChunkList
+ * @property {Array.} [data] BatchChunkList data
+ */
+
+ /**
+ * Constructs a new BatchChunkList.
+ * @memberof meerkat
+ * @classdesc Represents a BatchChunkList.
+ * @constructor
+ * @param {meerkat.IBatchChunkList=} [properties] Properties to set
+ */
+ function BatchChunkList(properties) {
+ this.data = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BatchChunkList data.
+ * @member {Array.}data
+ * @memberof meerkat.BatchChunkList
+ * @instance
+ */
+ BatchChunkList.prototype.data = $util.emptyArray;
+
+ /**
+ * Creates a new BatchChunkList instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {meerkat.IBatchChunkList=} [properties] Properties to set
+ * @returns {meerkat.BatchChunkList} BatchChunkList instance
+ */
+ BatchChunkList.create = function create(properties) {
+ return new BatchChunkList(properties);
+ };
+
+ /**
+ * Encodes the specified BatchChunkList message. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {meerkat.IBatchChunkList} message BatchChunkList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchChunkList.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.data.length)
+ for (var i = 0; i < message.data.length; ++i)
+ $root.meerkat.BatchChunk.encode(message.data[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BatchChunkList message, length delimited. Does not implicitly {@link meerkat.BatchChunkList.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {meerkat.IBatchChunkList} message BatchChunkList message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchChunkList.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BatchChunkList message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BatchChunkList} BatchChunkList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchChunkList.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchChunkList();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ if (!(message.data && message.data.length))
+ message.data = [];
+ message.data.push($root.meerkat.BatchChunk.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BatchChunkList message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BatchChunkList} BatchChunkList
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchChunkList.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BatchChunkList message.
+ * @function verify
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BatchChunkList.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data")) {
+ if (!Array.isArray(message.data))
+ return "data: array expected";
+ for (var i = 0; i < message.data.length; ++i) {
+ var error = $root.meerkat.BatchChunk.verify(message.data[i]);
+ if (error)
+ return "data." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BatchChunkList message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BatchChunkList} BatchChunkList
+ */
+ BatchChunkList.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BatchChunkList)
+ return object;
+ var message = new $root.meerkat.BatchChunkList();
+ if (object.data) {
+ if (!Array.isArray(object.data))
+ throw TypeError(".meerkat.BatchChunkList.data: array expected");
+ message.data = [];
+ for (var i = 0; i < object.data.length; ++i) {
+ if (typeof object.data[i] !== "object")
+ throw TypeError(".meerkat.BatchChunkList.data: object expected");
+ message.data[i] = $root.meerkat.BatchChunk.fromObject(object.data[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BatchChunkList message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BatchChunkList
+ * @static
+ * @param {meerkat.BatchChunkList} message BatchChunkList
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BatchChunkList.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.data = [];
+ if (message.data && message.data.length) {
+ object.data = [];
+ for (var j = 0; j < message.data.length; ++j)
+ object.data[j] = $root.meerkat.BatchChunk.toObject(message.data[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this BatchChunkList to JSON.
+ * @function toJSON
+ * @memberof meerkat.BatchChunkList
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BatchChunkList.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BatchChunkList;
+ })();
+
+ meerkat.BatchMessage = (function() {
+
+ /**
+ * Properties of a BatchMessage.
+ * @memberof meerkat
+ * @interface IBatchMessage
+ * @property {number|Long} [batchId] BatchMessage batchId
+ * @property {number} [serialNum] BatchMessage serialNum
+ * @property {meerkat.IBatchChunk} [data] BatchMessage data
+ */
+
+ /**
+ * Constructs a new BatchMessage.
+ * @memberof meerkat
+ * @classdesc Represents a BatchMessage.
+ * @constructor
+ * @param {meerkat.IBatchMessage=} [properties] Properties to set
+ */
+ function BatchMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BatchMessage batchId.
+ * @member {number|Long}batchId
+ * @memberof meerkat.BatchMessage
+ * @instance
+ */
+ BatchMessage.prototype.batchId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * BatchMessage serialNum.
+ * @member {number}serialNum
+ * @memberof meerkat.BatchMessage
+ * @instance
+ */
+ BatchMessage.prototype.serialNum = 0;
+
+ /**
+ * BatchMessage data.
+ * @member {(meerkat.IBatchChunk|null|undefined)}data
+ * @memberof meerkat.BatchMessage
+ * @instance
+ */
+ BatchMessage.prototype.data = null;
+
+ /**
+ * Creates a new BatchMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {meerkat.IBatchMessage=} [properties] Properties to set
+ * @returns {meerkat.BatchMessage} BatchMessage instance
+ */
+ BatchMessage.create = function create(properties) {
+ return new BatchMessage(properties);
+ };
+
+ /**
+ * Encodes the specified BatchMessage message. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {meerkat.IBatchMessage} message BatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.batchId);
+ if (message.serialNum != null && message.hasOwnProperty("serialNum"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.serialNum);
+ if (message.data != null && message.hasOwnProperty("data"))
+ $root.meerkat.BatchChunk.encode(message.data, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BatchMessage message, length delimited. Does not implicitly {@link meerkat.BatchMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {meerkat.IBatchMessage} message BatchMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BatchMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BatchMessage} BatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.batchId = reader.int64();
+ break;
+ case 2:
+ message.serialNum = reader.int32();
+ break;
+ case 3:
+ message.data = $root.meerkat.BatchChunk.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BatchMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BatchMessage} BatchMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BatchMessage message.
+ * @function verify
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BatchMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ if (!$util.isInteger(message.batchId) && !(message.batchId && $util.isInteger(message.batchId.low) && $util.isInteger(message.batchId.high)))
+ return "batchId: integer|Long expected";
+ if (message.serialNum != null && message.hasOwnProperty("serialNum"))
+ if (!$util.isInteger(message.serialNum))
+ return "serialNum: integer expected";
+ if (message.data != null && message.hasOwnProperty("data")) {
+ var error = $root.meerkat.BatchChunk.verify(message.data);
+ if (error)
+ return "data." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a BatchMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BatchMessage} BatchMessage
+ */
+ BatchMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BatchMessage)
+ return object;
+ var message = new $root.meerkat.BatchMessage();
+ if (object.batchId != null)
+ if ($util.Long)
+ (message.batchId = $util.Long.fromValue(object.batchId)).unsigned = false;
+ else if (typeof object.batchId === "string")
+ message.batchId = parseInt(object.batchId, 10);
+ else if (typeof object.batchId === "number")
+ message.batchId = object.batchId;
+ else if (typeof object.batchId === "object")
+ message.batchId = new $util.LongBits(object.batchId.low >>> 0, object.batchId.high >>> 0).toNumber();
+ if (object.serialNum != null)
+ message.serialNum = object.serialNum | 0;
+ if (object.data != null) {
+ if (typeof object.data !== "object")
+ throw TypeError(".meerkat.BatchMessage.data: object expected");
+ message.data = $root.meerkat.BatchChunk.fromObject(object.data);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BatchMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BatchMessage
+ * @static
+ * @param {meerkat.BatchMessage} message BatchMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BatchMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.batchId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.batchId = options.longs === String ? "0" : 0;
+ object.serialNum = 0;
+ object.data = null;
+ }
+ if (message.batchId != null && message.hasOwnProperty("batchId"))
+ if (typeof message.batchId === "number")
+ object.batchId = options.longs === String ? String(message.batchId) : message.batchId;
+ else
+ object.batchId = options.longs === String ? $util.Long.prototype.toString.call(message.batchId) : options.longs === Number ? new $util.LongBits(message.batchId.low >>> 0, message.batchId.high >>> 0).toNumber() : message.batchId;
+ if (message.serialNum != null && message.hasOwnProperty("serialNum"))
+ object.serialNum = message.serialNum;
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = $root.meerkat.BatchChunk.toObject(message.data, options);
+ return object;
+ };
+
+ /**
+ * Converts this BatchMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.BatchMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BatchMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BatchMessage;
+ })();
+
+ meerkat.SingleSyncQuery = (function() {
+
+ /**
+ * Properties of a SingleSyncQuery.
+ * @memberof meerkat
+ * @interface ISingleSyncQuery
+ * @property {google.protobuf.ITimestamp} [timeOfSync] SingleSyncQuery timeOfSync
+ * @property {number|Long} [checksum] SingleSyncQuery checksum
+ */
+
+ /**
+ * Constructs a new SingleSyncQuery.
+ * @memberof meerkat
+ * @classdesc Represents a SingleSyncQuery.
+ * @constructor
+ * @param {meerkat.ISingleSyncQuery=} [properties] Properties to set
+ */
+ function SingleSyncQuery(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * SingleSyncQuery timeOfSync.
+ * @member {(google.protobuf.ITimestamp|null|undefined)}timeOfSync
+ * @memberof meerkat.SingleSyncQuery
+ * @instance
+ */
+ SingleSyncQuery.prototype.timeOfSync = null;
+
+ /**
+ * SingleSyncQuery checksum.
+ * @member {number|Long}checksum
+ * @memberof meerkat.SingleSyncQuery
+ * @instance
+ */
+ SingleSyncQuery.prototype.checksum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * Creates a new SingleSyncQuery instance using the specified properties.
+ * @function create
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {meerkat.ISingleSyncQuery=} [properties] Properties to set
+ * @returns {meerkat.SingleSyncQuery} SingleSyncQuery instance
+ */
+ SingleSyncQuery.create = function create(properties) {
+ return new SingleSyncQuery(properties);
+ };
+
+ /**
+ * Encodes the specified SingleSyncQuery message. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {meerkat.ISingleSyncQuery} message SingleSyncQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SingleSyncQuery.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync"))
+ $root.google.protobuf.Timestamp.encode(message.timeOfSync, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.checksum != null && message.hasOwnProperty("checksum"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int64(message.checksum);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SingleSyncQuery message, length delimited. Does not implicitly {@link meerkat.SingleSyncQuery.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {meerkat.ISingleSyncQuery} message SingleSyncQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SingleSyncQuery.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SingleSyncQuery message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.SingleSyncQuery} SingleSyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SingleSyncQuery.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SingleSyncQuery();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.timeOfSync = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.checksum = reader.int64();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SingleSyncQuery message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.SingleSyncQuery} SingleSyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SingleSyncQuery.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SingleSyncQuery message.
+ * @function verify
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SingleSyncQuery.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync")) {
+ var error = $root.google.protobuf.Timestamp.verify(message.timeOfSync);
+ if (error)
+ return "timeOfSync." + error;
+ }
+ if (message.checksum != null && message.hasOwnProperty("checksum"))
+ if (!$util.isInteger(message.checksum) && !(message.checksum && $util.isInteger(message.checksum.low) && $util.isInteger(message.checksum.high)))
+ return "checksum: integer|Long expected";
+ return null;
+ };
+
+ /**
+ * Creates a SingleSyncQuery message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.SingleSyncQuery} SingleSyncQuery
+ */
+ SingleSyncQuery.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.SingleSyncQuery)
+ return object;
+ var message = new $root.meerkat.SingleSyncQuery();
+ if (object.timeOfSync != null) {
+ if (typeof object.timeOfSync !== "object")
+ throw TypeError(".meerkat.SingleSyncQuery.timeOfSync: object expected");
+ message.timeOfSync = $root.google.protobuf.Timestamp.fromObject(object.timeOfSync);
+ }
+ if (object.checksum != null)
+ if ($util.Long)
+ (message.checksum = $util.Long.fromValue(object.checksum)).unsigned = false;
+ else if (typeof object.checksum === "string")
+ message.checksum = parseInt(object.checksum, 10);
+ else if (typeof object.checksum === "number")
+ message.checksum = object.checksum;
+ else if (typeof object.checksum === "object")
+ message.checksum = new $util.LongBits(object.checksum.low >>> 0, object.checksum.high >>> 0).toNumber();
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SingleSyncQuery message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.SingleSyncQuery
+ * @static
+ * @param {meerkat.SingleSyncQuery} message SingleSyncQuery
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SingleSyncQuery.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.timeOfSync = null;
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.checksum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.checksum = options.longs === String ? "0" : 0;
+ }
+ if (message.timeOfSync != null && message.hasOwnProperty("timeOfSync"))
+ object.timeOfSync = $root.google.protobuf.Timestamp.toObject(message.timeOfSync, options);
+ if (message.checksum != null && message.hasOwnProperty("checksum"))
+ if (typeof message.checksum === "number")
+ object.checksum = options.longs === String ? String(message.checksum) : message.checksum;
+ else
+ object.checksum = options.longs === String ? $util.Long.prototype.toString.call(message.checksum) : options.longs === Number ? new $util.LongBits(message.checksum.low >>> 0, message.checksum.high >>> 0).toNumber() : message.checksum;
+ return object;
+ };
+
+ /**
+ * Converts this SingleSyncQuery to JSON.
+ * @function toJSON
+ * @memberof meerkat.SingleSyncQuery
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SingleSyncQuery.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return SingleSyncQuery;
+ })();
+
+ meerkat.SyncQuery = (function() {
+
+ /**
+ * Properties of a SyncQuery.
+ * @memberof meerkat
+ * @interface ISyncQuery
+ * @property {meerkat.IMessageFilterList} [filterList] SyncQuery filterList
+ * @property {Array.} [query] SyncQuery query
+ */
+
+ /**
+ * Constructs a new SyncQuery.
+ * @memberof meerkat
+ * @classdesc Represents a SyncQuery.
+ * @constructor
+ * @param {meerkat.ISyncQuery=} [properties] Properties to set
+ */
+ function SyncQuery(properties) {
+ this.query = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * SyncQuery filterList.
+ * @member {(meerkat.IMessageFilterList|null|undefined)}filterList
+ * @memberof meerkat.SyncQuery
+ * @instance
+ */
+ SyncQuery.prototype.filterList = null;
+
+ /**
+ * SyncQuery query.
+ * @member {Array.}query
+ * @memberof meerkat.SyncQuery
+ * @instance
+ */
+ SyncQuery.prototype.query = $util.emptyArray;
+
+ /**
+ * Creates a new SyncQuery instance using the specified properties.
+ * @function create
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {meerkat.ISyncQuery=} [properties] Properties to set
+ * @returns {meerkat.SyncQuery} SyncQuery instance
+ */
+ SyncQuery.create = function create(properties) {
+ return new SyncQuery(properties);
+ };
+
+ /**
+ * Encodes the specified SyncQuery message. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {meerkat.ISyncQuery} message SyncQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SyncQuery.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filterList != null && message.hasOwnProperty("filterList"))
+ $root.meerkat.MessageFilterList.encode(message.filterList, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.query != null && message.query.length)
+ for (var i = 0; i < message.query.length; ++i)
+ $root.meerkat.SingleSyncQuery.encode(message.query[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SyncQuery message, length delimited. Does not implicitly {@link meerkat.SyncQuery.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {meerkat.ISyncQuery} message SyncQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SyncQuery.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SyncQuery message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.SyncQuery} SyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SyncQuery.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SyncQuery();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.filterList = $root.meerkat.MessageFilterList.decode(reader, reader.uint32());
+ break;
+ case 2:
+ if (!(message.query && message.query.length))
+ message.query = [];
+ message.query.push($root.meerkat.SingleSyncQuery.decode(reader, reader.uint32()));
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SyncQuery message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.SyncQuery} SyncQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SyncQuery.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SyncQuery message.
+ * @function verify
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SyncQuery.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.filterList != null && message.hasOwnProperty("filterList")) {
+ var error = $root.meerkat.MessageFilterList.verify(message.filterList);
+ if (error)
+ return "filterList." + error;
+ }
+ if (message.query != null && message.hasOwnProperty("query")) {
+ if (!Array.isArray(message.query))
+ return "query: array expected";
+ for (var i = 0; i < message.query.length; ++i) {
+ error = $root.meerkat.SingleSyncQuery.verify(message.query[i]);
+ if (error)
+ return "query." + error;
+ }
+ }
+ return null;
+ };
+
+ /**
+ * Creates a SyncQuery message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.SyncQuery} SyncQuery
+ */
+ SyncQuery.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.SyncQuery)
+ return object;
+ var message = new $root.meerkat.SyncQuery();
+ if (object.filterList != null) {
+ if (typeof object.filterList !== "object")
+ throw TypeError(".meerkat.SyncQuery.filterList: object expected");
+ message.filterList = $root.meerkat.MessageFilterList.fromObject(object.filterList);
+ }
+ if (object.query) {
+ if (!Array.isArray(object.query))
+ throw TypeError(".meerkat.SyncQuery.query: array expected");
+ message.query = [];
+ for (var i = 0; i < object.query.length; ++i) {
+ if (typeof object.query[i] !== "object")
+ throw TypeError(".meerkat.SyncQuery.query: object expected");
+ message.query[i] = $root.meerkat.SingleSyncQuery.fromObject(object.query[i]);
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SyncQuery message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.SyncQuery
+ * @static
+ * @param {meerkat.SyncQuery} message SyncQuery
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SyncQuery.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.query = [];
+ if (options.defaults)
+ object.filterList = null;
+ if (message.filterList != null && message.hasOwnProperty("filterList"))
+ object.filterList = $root.meerkat.MessageFilterList.toObject(message.filterList, options);
+ if (message.query && message.query.length) {
+ object.query = [];
+ for (var j = 0; j < message.query.length; ++j)
+ object.query[j] = $root.meerkat.SingleSyncQuery.toObject(message.query[j], options);
+ }
+ return object;
+ };
+
+ /**
+ * Converts this SyncQuery to JSON.
+ * @function toJSON
+ * @memberof meerkat.SyncQuery
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SyncQuery.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return SyncQuery;
+ })();
+
+ meerkat.GenerateSyncQueryParams = (function() {
+
+ /**
+ * Properties of a GenerateSyncQueryParams.
+ * @memberof meerkat
+ * @interface IGenerateSyncQueryParams
+ * @property {meerkat.IMessageFilterList} [filterList] GenerateSyncQueryParams filterList
+ * @property {Array.} [breakpointList] GenerateSyncQueryParams breakpointList
+ */
+
+ /**
+ * Constructs a new GenerateSyncQueryParams.
+ * @memberof meerkat
+ * @classdesc Represents a GenerateSyncQueryParams.
+ * @constructor
+ * @param {meerkat.IGenerateSyncQueryParams=} [properties] Properties to set
+ */
+ function GenerateSyncQueryParams(properties) {
+ this.breakpointList = [];
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GenerateSyncQueryParams filterList.
+ * @member {(meerkat.IMessageFilterList|null|undefined)}filterList
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @instance
+ */
+ GenerateSyncQueryParams.prototype.filterList = null;
+
+ /**
+ * GenerateSyncQueryParams breakpointList.
+ * @member {Array.}breakpointList
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @instance
+ */
+ GenerateSyncQueryParams.prototype.breakpointList = $util.emptyArray;
+
+ /**
+ * Creates a new GenerateSyncQueryParams instance using the specified properties.
+ * @function create
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {meerkat.IGenerateSyncQueryParams=} [properties] Properties to set
+ * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams instance
+ */
+ GenerateSyncQueryParams.create = function create(properties) {
+ return new GenerateSyncQueryParams(properties);
+ };
+
+ /**
+ * Encodes the specified GenerateSyncQueryParams message. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {meerkat.IGenerateSyncQueryParams} message GenerateSyncQueryParams message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GenerateSyncQueryParams.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.filterList != null && message.hasOwnProperty("filterList"))
+ $root.meerkat.MessageFilterList.encode(message.filterList, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.breakpointList != null && message.breakpointList.length) {
+ writer.uint32(/* id 2, wireType 2 =*/18).fork();
+ for (var i = 0; i < message.breakpointList.length; ++i)
+ writer.float(message.breakpointList[i]);
+ writer.ldelim();
+ }
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GenerateSyncQueryParams message, length delimited. Does not implicitly {@link meerkat.GenerateSyncQueryParams.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {meerkat.IGenerateSyncQueryParams} message GenerateSyncQueryParams message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GenerateSyncQueryParams.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GenerateSyncQueryParams message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GenerateSyncQueryParams.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.GenerateSyncQueryParams();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.filterList = $root.meerkat.MessageFilterList.decode(reader, reader.uint32());
+ break;
+ case 2:
+ if (!(message.breakpointList && message.breakpointList.length))
+ message.breakpointList = [];
+ if ((tag & 7) === 2) {
+ var end2 = reader.uint32() + reader.pos;
+ while (reader.pos < end2)
+ message.breakpointList.push(reader.float());
+ } else
+ message.breakpointList.push(reader.float());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GenerateSyncQueryParams message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GenerateSyncQueryParams.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GenerateSyncQueryParams message.
+ * @function verify
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GenerateSyncQueryParams.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.filterList != null && message.hasOwnProperty("filterList")) {
+ var error = $root.meerkat.MessageFilterList.verify(message.filterList);
+ if (error)
+ return "filterList." + error;
+ }
+ if (message.breakpointList != null && message.hasOwnProperty("breakpointList")) {
+ if (!Array.isArray(message.breakpointList))
+ return "breakpointList: array expected";
+ for (var i = 0; i < message.breakpointList.length; ++i)
+ if (typeof message.breakpointList[i] !== "number")
+ return "breakpointList: number[] expected";
+ }
+ return null;
+ };
+
+ /**
+ * Creates a GenerateSyncQueryParams message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.GenerateSyncQueryParams} GenerateSyncQueryParams
+ */
+ GenerateSyncQueryParams.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.GenerateSyncQueryParams)
+ return object;
+ var message = new $root.meerkat.GenerateSyncQueryParams();
+ if (object.filterList != null) {
+ if (typeof object.filterList !== "object")
+ throw TypeError(".meerkat.GenerateSyncQueryParams.filterList: object expected");
+ message.filterList = $root.meerkat.MessageFilterList.fromObject(object.filterList);
+ }
+ if (object.breakpointList) {
+ if (!Array.isArray(object.breakpointList))
+ throw TypeError(".meerkat.GenerateSyncQueryParams.breakpointList: array expected");
+ message.breakpointList = [];
+ for (var i = 0; i < object.breakpointList.length; ++i)
+ message.breakpointList[i] = Number(object.breakpointList[i]);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GenerateSyncQueryParams message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @static
+ * @param {meerkat.GenerateSyncQueryParams} message GenerateSyncQueryParams
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GenerateSyncQueryParams.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.arrays || options.defaults)
+ object.breakpointList = [];
+ if (options.defaults)
+ object.filterList = null;
+ if (message.filterList != null && message.hasOwnProperty("filterList"))
+ object.filterList = $root.meerkat.MessageFilterList.toObject(message.filterList, options);
+ if (message.breakpointList && message.breakpointList.length) {
+ object.breakpointList = [];
+ for (var j = 0; j < message.breakpointList.length; ++j)
+ object.breakpointList[j] = options.json && !isFinite(message.breakpointList[j]) ? String(message.breakpointList[j]) : message.breakpointList[j];
+ }
+ return object;
+ };
+
+ /**
+ * Converts this GenerateSyncQueryParams to JSON.
+ * @function toJSON
+ * @memberof meerkat.GenerateSyncQueryParams
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GenerateSyncQueryParams.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return GenerateSyncQueryParams;
+ })();
+
+ meerkat.SyncQueryResponse = (function() {
+
+ /**
+ * Properties of a SyncQueryResponse.
+ * @memberof meerkat
+ * @interface ISyncQueryResponse
+ * @property {number|Long} [lastEntryNum] SyncQueryResponse lastEntryNum
+ * @property {google.protobuf.ITimestamp} [lastTimeOfSync] SyncQueryResponse lastTimeOfSync
+ */
+
+ /**
+ * Constructs a new SyncQueryResponse.
+ * @memberof meerkat
+ * @classdesc Represents a SyncQueryResponse.
+ * @constructor
+ * @param {meerkat.ISyncQueryResponse=} [properties] Properties to set
+ */
+ function SyncQueryResponse(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * SyncQueryResponse lastEntryNum.
+ * @member {number|Long}lastEntryNum
+ * @memberof meerkat.SyncQueryResponse
+ * @instance
+ */
+ SyncQueryResponse.prototype.lastEntryNum = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+
+ /**
+ * SyncQueryResponse lastTimeOfSync.
+ * @member {(google.protobuf.ITimestamp|null|undefined)}lastTimeOfSync
+ * @memberof meerkat.SyncQueryResponse
+ * @instance
+ */
+ SyncQueryResponse.prototype.lastTimeOfSync = null;
+
+ /**
+ * Creates a new SyncQueryResponse instance using the specified properties.
+ * @function create
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {meerkat.ISyncQueryResponse=} [properties] Properties to set
+ * @returns {meerkat.SyncQueryResponse} SyncQueryResponse instance
+ */
+ SyncQueryResponse.create = function create(properties) {
+ return new SyncQueryResponse(properties);
+ };
+
+ /**
+ * Encodes the specified SyncQueryResponse message. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {meerkat.ISyncQueryResponse} message SyncQueryResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SyncQueryResponse.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int64(message.lastEntryNum);
+ if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync"))
+ $root.google.protobuf.Timestamp.encode(message.lastTimeOfSync, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SyncQueryResponse message, length delimited. Does not implicitly {@link meerkat.SyncQueryResponse.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {meerkat.ISyncQueryResponse} message SyncQueryResponse message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SyncQueryResponse.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SyncQueryResponse message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.SyncQueryResponse} SyncQueryResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SyncQueryResponse.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SyncQueryResponse();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.lastEntryNum = reader.int64();
+ break;
+ case 2:
+ message.lastTimeOfSync = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SyncQueryResponse message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.SyncQueryResponse} SyncQueryResponse
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SyncQueryResponse.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SyncQueryResponse message.
+ * @function verify
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SyncQueryResponse.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum"))
+ if (!$util.isInteger(message.lastEntryNum) && !(message.lastEntryNum && $util.isInteger(message.lastEntryNum.low) && $util.isInteger(message.lastEntryNum.high)))
+ return "lastEntryNum: integer|Long expected";
+ if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync")) {
+ var error = $root.google.protobuf.Timestamp.verify(message.lastTimeOfSync);
+ if (error)
+ return "lastTimeOfSync." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a SyncQueryResponse message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.SyncQueryResponse} SyncQueryResponse
+ */
+ SyncQueryResponse.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.SyncQueryResponse)
+ return object;
+ var message = new $root.meerkat.SyncQueryResponse();
+ if (object.lastEntryNum != null)
+ if ($util.Long)
+ (message.lastEntryNum = $util.Long.fromValue(object.lastEntryNum)).unsigned = false;
+ else if (typeof object.lastEntryNum === "string")
+ message.lastEntryNum = parseInt(object.lastEntryNum, 10);
+ else if (typeof object.lastEntryNum === "number")
+ message.lastEntryNum = object.lastEntryNum;
+ else if (typeof object.lastEntryNum === "object")
+ message.lastEntryNum = new $util.LongBits(object.lastEntryNum.low >>> 0, object.lastEntryNum.high >>> 0).toNumber();
+ if (object.lastTimeOfSync != null) {
+ if (typeof object.lastTimeOfSync !== "object")
+ throw TypeError(".meerkat.SyncQueryResponse.lastTimeOfSync: object expected");
+ message.lastTimeOfSync = $root.google.protobuf.Timestamp.fromObject(object.lastTimeOfSync);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SyncQueryResponse message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.SyncQueryResponse
+ * @static
+ * @param {meerkat.SyncQueryResponse} message SyncQueryResponse
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SyncQueryResponse.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, false);
+ object.lastEntryNum = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.lastEntryNum = options.longs === String ? "0" : 0;
+ object.lastTimeOfSync = null;
+ }
+ if (message.lastEntryNum != null && message.hasOwnProperty("lastEntryNum"))
+ if (typeof message.lastEntryNum === "number")
+ object.lastEntryNum = options.longs === String ? String(message.lastEntryNum) : message.lastEntryNum;
+ else
+ object.lastEntryNum = options.longs === String ? $util.Long.prototype.toString.call(message.lastEntryNum) : options.longs === Number ? new $util.LongBits(message.lastEntryNum.low >>> 0, message.lastEntryNum.high >>> 0).toNumber() : message.lastEntryNum;
+ if (message.lastTimeOfSync != null && message.hasOwnProperty("lastTimeOfSync"))
+ object.lastTimeOfSync = $root.google.protobuf.Timestamp.toObject(message.lastTimeOfSync, options);
+ return object;
+ };
+
+ /**
+ * Converts this SyncQueryResponse to JSON.
+ * @function toJSON
+ * @memberof meerkat.SyncQueryResponse
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SyncQueryResponse.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return SyncQueryResponse;
+ })();
+
+ meerkat.BatchQuery = (function() {
+
+ /**
+ * Properties of a BatchQuery.
+ * @memberof meerkat
+ * @interface IBatchQuery
+ * @property {meerkat.IMessageID} [msgID] BatchQuery msgID
+ * @property {number} [startPosition] BatchQuery startPosition
+ */
+
+ /**
+ * Constructs a new BatchQuery.
+ * @memberof meerkat
+ * @classdesc Represents a BatchQuery.
+ * @constructor
+ * @param {meerkat.IBatchQuery=} [properties] Properties to set
+ */
+ function BatchQuery(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BatchQuery msgID.
+ * @member {(meerkat.IMessageID|null|undefined)}msgID
+ * @memberof meerkat.BatchQuery
+ * @instance
+ */
+ BatchQuery.prototype.msgID = null;
+
+ /**
+ * BatchQuery startPosition.
+ * @member {number}startPosition
+ * @memberof meerkat.BatchQuery
+ * @instance
+ */
+ BatchQuery.prototype.startPosition = 0;
+
+ /**
+ * Creates a new BatchQuery instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {meerkat.IBatchQuery=} [properties] Properties to set
+ * @returns {meerkat.BatchQuery} BatchQuery instance
+ */
+ BatchQuery.create = function create(properties) {
+ return new BatchQuery(properties);
+ };
+
+ /**
+ * Encodes the specified BatchQuery message. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {meerkat.IBatchQuery} message BatchQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchQuery.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.msgID != null && message.hasOwnProperty("msgID"))
+ $root.meerkat.MessageID.encode(message.msgID, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.startPosition != null && message.hasOwnProperty("startPosition"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.startPosition);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BatchQuery message, length delimited. Does not implicitly {@link meerkat.BatchQuery.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {meerkat.IBatchQuery} message BatchQuery message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BatchQuery.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BatchQuery message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BatchQuery} BatchQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchQuery.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BatchQuery();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.msgID = $root.meerkat.MessageID.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.startPosition = reader.int32();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BatchQuery message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BatchQuery} BatchQuery
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BatchQuery.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BatchQuery message.
+ * @function verify
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BatchQuery.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.msgID != null && message.hasOwnProperty("msgID")) {
+ var error = $root.meerkat.MessageID.verify(message.msgID);
+ if (error)
+ return "msgID." + error;
+ }
+ if (message.startPosition != null && message.hasOwnProperty("startPosition"))
+ if (!$util.isInteger(message.startPosition))
+ return "startPosition: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a BatchQuery message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BatchQuery} BatchQuery
+ */
+ BatchQuery.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BatchQuery)
+ return object;
+ var message = new $root.meerkat.BatchQuery();
+ if (object.msgID != null) {
+ if (typeof object.msgID !== "object")
+ throw TypeError(".meerkat.BatchQuery.msgID: object expected");
+ message.msgID = $root.meerkat.MessageID.fromObject(object.msgID);
+ }
+ if (object.startPosition != null)
+ message.startPosition = object.startPosition | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BatchQuery message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BatchQuery
+ * @static
+ * @param {meerkat.BatchQuery} message BatchQuery
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BatchQuery.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.msgID = null;
+ object.startPosition = 0;
+ }
+ if (message.msgID != null && message.hasOwnProperty("msgID"))
+ object.msgID = $root.meerkat.MessageID.toObject(message.msgID, options);
+ if (message.startPosition != null && message.hasOwnProperty("startPosition"))
+ object.startPosition = message.startPosition;
+ return object;
+ };
+
+ /**
+ * Converts this BatchQuery to JSON.
+ * @function toJSON
+ * @memberof meerkat.BatchQuery
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BatchQuery.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BatchQuery;
+ })();
+
+ meerkat.ServerStatus = (function() {
+
+ /**
+ * Properties of a ServerStatus.
+ * @memberof meerkat
+ * @interface IServerStatus
+ * @property {meerkat.ServerStatus.Mode} [mode] ServerStatus mode
+ * @property {string} [name] ServerStatus name
+ * @property {meerkat.ISignatureVerificationKey} [pk] ServerStatus pk
+ */
+
+ /**
+ * Constructs a new ServerStatus.
+ * @memberof meerkat
+ * @classdesc Represents a ServerStatus.
+ * @constructor
+ * @param {meerkat.IServerStatus=} [properties] Properties to set
+ */
+ function ServerStatus(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ServerStatus mode.
+ * @member {meerkat.ServerStatus.Mode}mode
+ * @memberof meerkat.ServerStatus
+ * @instance
+ */
+ ServerStatus.prototype.mode = 0;
+
+ /**
+ * ServerStatus name.
+ * @member {string}name
+ * @memberof meerkat.ServerStatus
+ * @instance
+ */
+ ServerStatus.prototype.name = "";
+
+ /**
+ * ServerStatus pk.
+ * @member {(meerkat.ISignatureVerificationKey|null|undefined)}pk
+ * @memberof meerkat.ServerStatus
+ * @instance
+ */
+ ServerStatus.prototype.pk = null;
+
+ /**
+ * Creates a new ServerStatus instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {meerkat.IServerStatus=} [properties] Properties to set
+ * @returns {meerkat.ServerStatus} ServerStatus instance
+ */
+ ServerStatus.create = function create(properties) {
+ return new ServerStatus(properties);
+ };
+
+ /**
+ * Encodes the specified ServerStatus message. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {meerkat.IServerStatus} message ServerStatus message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ServerStatus.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.mode != null && message.hasOwnProperty("mode"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.mode);
+ if (message.name != null && message.hasOwnProperty("name"))
+ writer.uint32(/* id 2, wireType 2 =*/18).string(message.name);
+ if (message.pk != null && message.hasOwnProperty("pk"))
+ $root.meerkat.SignatureVerificationKey.encode(message.pk, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ServerStatus message, length delimited. Does not implicitly {@link meerkat.ServerStatus.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {meerkat.IServerStatus} message ServerStatus message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ServerStatus.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ServerStatus message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ServerStatus} ServerStatus
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ServerStatus.decode = function decode(reader, length) {
+ console.log("Decoding", reader);
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+
+ console.log("Len", reader.len);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ServerStatus();
+
+ while (reader.pos < end) {
+
+
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.mode = reader.int32();
+ break;
+ case 2:
+ message.name = reader.string();
+ break;
+ case 3:
+ message.pk = $root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ServerStatus message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ServerStatus} ServerStatus
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ServerStatus.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ServerStatus message.
+ * @function verify
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ServerStatus.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.mode != null && message.hasOwnProperty("mode"))
+ switch (message.mode) {
+ default:
+ return "mode: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.name != null && message.hasOwnProperty("name"))
+ if (!$util.isString(message.name))
+ return "name: string expected";
+ if (message.pk != null && message.hasOwnProperty("pk")) {
+ var error = $root.meerkat.SignatureVerificationKey.verify(message.pk);
+ if (error)
+ return "pk." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ServerStatus message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ServerStatus} ServerStatus
+ */
+ ServerStatus.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ServerStatus)
+ return object;
+ var message = new $root.meerkat.ServerStatus();
+ switch (object.mode) {
+ case "MODE_SETUP_AUTH":
+ case 0:
+ message.mode = 0;
+ break;
+ case "MODE_SETUP_DB":
+ case 1:
+ message.mode = 1;
+ break;
+ case "MODE_RUNNING":
+ case 2:
+ message.mode = 2;
+ break;
+ }
+ if (object.name != null)
+ message.name = String(object.name);
+ if (object.pk != null) {
+ if (typeof object.pk !== "object")
+ throw TypeError(".meerkat.ServerStatus.pk: object expected");
+ message.pk = $root.meerkat.SignatureVerificationKey.fromObject(object.pk);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ServerStatus message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ServerStatus
+ * @static
+ * @param {meerkat.ServerStatus} message ServerStatus
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ServerStatus.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.mode = options.enums === String ? "MODE_SETUP_AUTH" : 0;
+ object.name = "";
+ object.pk = null;
+ }
+ if (message.mode != null && message.hasOwnProperty("mode"))
+ object.mode = options.enums === String ? $root.meerkat.ServerStatus.Mode[message.mode] : message.mode;
+ if (message.name != null && message.hasOwnProperty("name"))
+ object.name = message.name;
+ if (message.pk != null && message.hasOwnProperty("pk"))
+ object.pk = $root.meerkat.SignatureVerificationKey.toObject(message.pk, options);
+ return object;
+ };
+
+ /**
+ * Converts this ServerStatus to JSON.
+ * @function toJSON
+ * @memberof meerkat.ServerStatus
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ServerStatus.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Mode enum.
+ * @enum {string}
+ * @property {number} MODE_SETUP_AUTH=0 MODE_SETUP_AUTH value
+ * @property {number} MODE_SETUP_DB=1 MODE_SETUP_DB value
+ * @property {number} MODE_RUNNING=2 MODE_RUNNING value
+ */
+ ServerStatus.Mode = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "MODE_SETUP_AUTH"] = 0;
+ values[valuesById[1] = "MODE_SETUP_DB"] = 1;
+ values[valuesById[2] = "MODE_RUNNING"] = 2;
+ return values;
+ })();
+
+ return ServerStatus;
+ })();
+
+ meerkat.BroadcastMessage = (function() {
+
+ /**
+ * Properties of a BroadcastMessage.
+ * @memberof meerkat
+ * @interface IBroadcastMessage
+ * @property {number} [sender] BroadcastMessage sender
+ * @property {number} [destination] BroadcastMessage destination
+ * @property {boolean} [isPrivate] BroadcastMessage isPrivate
+ * @property {Uint8Array} [payload] BroadcastMessage payload
+ */
+
+ /**
+ * Constructs a new BroadcastMessage.
+ * @memberof meerkat
+ * @classdesc Represents a BroadcastMessage.
+ * @constructor
+ * @param {meerkat.IBroadcastMessage=} [properties] Properties to set
+ */
+ function BroadcastMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BroadcastMessage sender.
+ * @member {number}sender
+ * @memberof meerkat.BroadcastMessage
+ * @instance
+ */
+ BroadcastMessage.prototype.sender = 0;
+
+ /**
+ * BroadcastMessage destination.
+ * @member {number}destination
+ * @memberof meerkat.BroadcastMessage
+ * @instance
+ */
+ BroadcastMessage.prototype.destination = 0;
+
+ /**
+ * BroadcastMessage isPrivate.
+ * @member {boolean}isPrivate
+ * @memberof meerkat.BroadcastMessage
+ * @instance
+ */
+ BroadcastMessage.prototype.isPrivate = false;
+
+ /**
+ * BroadcastMessage payload.
+ * @member {Uint8Array}payload
+ * @memberof meerkat.BroadcastMessage
+ * @instance
+ */
+ BroadcastMessage.prototype.payload = $util.newBuffer([]);
+
+ /**
+ * Creates a new BroadcastMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {meerkat.IBroadcastMessage=} [properties] Properties to set
+ * @returns {meerkat.BroadcastMessage} BroadcastMessage instance
+ */
+ BroadcastMessage.create = function create(properties) {
+ return new BroadcastMessage(properties);
+ };
+
+ /**
+ * Encodes the specified BroadcastMessage message. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {meerkat.IBroadcastMessage} message BroadcastMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BroadcastMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.sender != null && message.hasOwnProperty("sender"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.sender);
+ if (message.destination != null && message.hasOwnProperty("destination"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.destination);
+ if (message.isPrivate != null && message.hasOwnProperty("isPrivate"))
+ writer.uint32(/* id 3, wireType 0 =*/24).bool(message.isPrivate);
+ if (message.payload != null && message.hasOwnProperty("payload"))
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.payload);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BroadcastMessage message, length delimited. Does not implicitly {@link meerkat.BroadcastMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {meerkat.IBroadcastMessage} message BroadcastMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BroadcastMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BroadcastMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BroadcastMessage} BroadcastMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BroadcastMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BroadcastMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.sender = reader.int32();
+ break;
+ case 2:
+ message.destination = reader.int32();
+ break;
+ case 3:
+ message.isPrivate = reader.bool();
+ break;
+ case 5:
+ message.payload = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BroadcastMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BroadcastMessage} BroadcastMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BroadcastMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BroadcastMessage message.
+ * @function verify
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BroadcastMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.sender != null && message.hasOwnProperty("sender"))
+ if (!$util.isInteger(message.sender))
+ return "sender: integer expected";
+ if (message.destination != null && message.hasOwnProperty("destination"))
+ if (!$util.isInteger(message.destination))
+ return "destination: integer expected";
+ if (message.isPrivate != null && message.hasOwnProperty("isPrivate"))
+ if (typeof message.isPrivate !== "boolean")
+ return "isPrivate: boolean expected";
+ if (message.payload != null && message.hasOwnProperty("payload"))
+ if (!(message.payload && typeof message.payload.length === "number" || $util.isString(message.payload)))
+ return "payload: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a BroadcastMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BroadcastMessage} BroadcastMessage
+ */
+ BroadcastMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BroadcastMessage)
+ return object;
+ var message = new $root.meerkat.BroadcastMessage();
+ if (object.sender != null)
+ message.sender = object.sender | 0;
+ if (object.destination != null)
+ message.destination = object.destination | 0;
+ if (object.isPrivate != null)
+ message.isPrivate = Boolean(object.isPrivate);
+ if (object.payload != null)
+ if (typeof object.payload === "string")
+ $util.base64.decode(object.payload, message.payload = $util.newBuffer($util.base64.length(object.payload)), 0);
+ else if (object.payload.length)
+ message.payload = object.payload;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BroadcastMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BroadcastMessage
+ * @static
+ * @param {meerkat.BroadcastMessage} message BroadcastMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BroadcastMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.sender = 0;
+ object.destination = 0;
+ object.isPrivate = false;
+ object.payload = options.bytes === String ? "" : [];
+ }
+ if (message.sender != null && message.hasOwnProperty("sender"))
+ object.sender = message.sender;
+ if (message.destination != null && message.hasOwnProperty("destination"))
+ object.destination = message.destination;
+ if (message.isPrivate != null && message.hasOwnProperty("isPrivate"))
+ object.isPrivate = message.isPrivate;
+ if (message.payload != null && message.hasOwnProperty("payload"))
+ object.payload = options.bytes === String ? $util.base64.encode(message.payload, 0, message.payload.length) : options.bytes === Array ? Array.prototype.slice.call(message.payload) : message.payload;
+ return object;
+ };
+
+ /**
+ * Converts this BroadcastMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.BroadcastMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BroadcastMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BroadcastMessage;
+ })();
+
+ meerkat.ElGamalPublicKey = (function() {
+
+ /**
+ * Properties of an ElGamalPublicKey.
+ * @memberof meerkat
+ * @interface IElGamalPublicKey
+ * @property {Uint8Array} [subjectPublicKeyInfo] ElGamalPublicKey subjectPublicKeyInfo
+ */
+
+ /**
+ * Constructs a new ElGamalPublicKey.
+ * @memberof meerkat
+ * @classdesc Represents an ElGamalPublicKey.
+ * @constructor
+ * @param {meerkat.IElGamalPublicKey=} [properties] Properties to set
+ */
+ function ElGamalPublicKey(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ElGamalPublicKey subjectPublicKeyInfo.
+ * @member {Uint8Array}subjectPublicKeyInfo
+ * @memberof meerkat.ElGamalPublicKey
+ * @instance
+ */
+ ElGamalPublicKey.prototype.subjectPublicKeyInfo = $util.newBuffer([]);
+
+ /**
+ * Creates a new ElGamalPublicKey instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {meerkat.IElGamalPublicKey=} [properties] Properties to set
+ * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey instance
+ */
+ ElGamalPublicKey.create = function create(properties) {
+ return new ElGamalPublicKey(properties);
+ };
+
+ /**
+ * Encodes the specified ElGamalPublicKey message. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {meerkat.IElGamalPublicKey} message ElGamalPublicKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ElGamalPublicKey.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.subjectPublicKeyInfo);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ElGamalPublicKey message, length delimited. Does not implicitly {@link meerkat.ElGamalPublicKey.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {meerkat.IElGamalPublicKey} message ElGamalPublicKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ElGamalPublicKey.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an ElGamalPublicKey message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ElGamalPublicKey.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ElGamalPublicKey();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.subjectPublicKeyInfo = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an ElGamalPublicKey message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ElGamalPublicKey.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an ElGamalPublicKey message.
+ * @function verify
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ElGamalPublicKey.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo"))
+ if (!(message.subjectPublicKeyInfo && typeof message.subjectPublicKeyInfo.length === "number" || $util.isString(message.subjectPublicKeyInfo)))
+ return "subjectPublicKeyInfo: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates an ElGamalPublicKey message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ElGamalPublicKey} ElGamalPublicKey
+ */
+ ElGamalPublicKey.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ElGamalPublicKey)
+ return object;
+ var message = new $root.meerkat.ElGamalPublicKey();
+ if (object.subjectPublicKeyInfo != null)
+ if (typeof object.subjectPublicKeyInfo === "string")
+ $util.base64.decode(object.subjectPublicKeyInfo, message.subjectPublicKeyInfo = $util.newBuffer($util.base64.length(object.subjectPublicKeyInfo)), 0);
+ else if (object.subjectPublicKeyInfo.length)
+ message.subjectPublicKeyInfo = object.subjectPublicKeyInfo;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an ElGamalPublicKey message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ElGamalPublicKey
+ * @static
+ * @param {meerkat.ElGamalPublicKey} message ElGamalPublicKey
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ElGamalPublicKey.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.subjectPublicKeyInfo = options.bytes === String ? "" : [];
+ if (message.subjectPublicKeyInfo != null && message.hasOwnProperty("subjectPublicKeyInfo"))
+ object.subjectPublicKeyInfo = options.bytes === String ? $util.base64.encode(message.subjectPublicKeyInfo, 0, message.subjectPublicKeyInfo.length) : options.bytes === Array ? Array.prototype.slice.call(message.subjectPublicKeyInfo) : message.subjectPublicKeyInfo;
+ return object;
+ };
+
+ /**
+ * Converts this ElGamalPublicKey to JSON.
+ * @function toJSON
+ * @memberof meerkat.ElGamalPublicKey
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ElGamalPublicKey.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ElGamalPublicKey;
+ })();
+
+ meerkat.GroupElement = (function() {
+
+ /**
+ * Properties of a GroupElement.
+ * @memberof meerkat
+ * @interface IGroupElement
+ * @property {Uint8Array} [data] GroupElement data
+ */
+
+ /**
+ * Constructs a new GroupElement.
+ * @memberof meerkat
+ * @classdesc Represents a GroupElement.
+ * @constructor
+ * @param {meerkat.IGroupElement=} [properties] Properties to set
+ */
+ function GroupElement(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * GroupElement data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.GroupElement
+ * @instance
+ */
+ GroupElement.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new GroupElement instance using the specified properties.
+ * @function create
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {meerkat.IGroupElement=} [properties] Properties to set
+ * @returns {meerkat.GroupElement} GroupElement instance
+ */
+ GroupElement.create = function create(properties) {
+ return new GroupElement(properties);
+ };
+
+ /**
+ * Encodes the specified GroupElement message. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {meerkat.IGroupElement} message GroupElement message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GroupElement.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified GroupElement message, length delimited. Does not implicitly {@link meerkat.GroupElement.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {meerkat.IGroupElement} message GroupElement message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ GroupElement.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a GroupElement message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.GroupElement} GroupElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GroupElement.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.GroupElement();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a GroupElement message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.GroupElement} GroupElement
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ GroupElement.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a GroupElement message.
+ * @function verify
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ GroupElement.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a GroupElement message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.GroupElement} GroupElement
+ */
+ GroupElement.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.GroupElement)
+ return object;
+ var message = new $root.meerkat.GroupElement();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a GroupElement message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.GroupElement
+ * @static
+ * @param {meerkat.GroupElement} message GroupElement
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ GroupElement.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this GroupElement to JSON.
+ * @function toJSON
+ * @memberof meerkat.GroupElement
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ GroupElement.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return GroupElement;
+ })();
+
+ meerkat.ElGamalCiphertext = (function() {
+
+ /**
+ * Properties of an ElGamalCiphertext.
+ * @memberof meerkat
+ * @interface IElGamalCiphertext
+ * @property {meerkat.IGroupElement} [c1] ElGamalCiphertext c1
+ * @property {meerkat.IGroupElement} [c2] ElGamalCiphertext c2
+ */
+
+ /**
+ * Constructs a new ElGamalCiphertext.
+ * @memberof meerkat
+ * @classdesc Represents an ElGamalCiphertext.
+ * @constructor
+ * @param {meerkat.IElGamalCiphertext=} [properties] Properties to set
+ */
+ function ElGamalCiphertext(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ElGamalCiphertext c1.
+ * @member {(meerkat.IGroupElement|null|undefined)}c1
+ * @memberof meerkat.ElGamalCiphertext
+ * @instance
+ */
+ ElGamalCiphertext.prototype.c1 = null;
+
+ /**
+ * ElGamalCiphertext c2.
+ * @member {(meerkat.IGroupElement|null|undefined)}c2
+ * @memberof meerkat.ElGamalCiphertext
+ * @instance
+ */
+ ElGamalCiphertext.prototype.c2 = null;
+
+ /**
+ * Creates a new ElGamalCiphertext instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {meerkat.IElGamalCiphertext=} [properties] Properties to set
+ * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext instance
+ */
+ ElGamalCiphertext.create = function create(properties) {
+ return new ElGamalCiphertext(properties);
+ };
+
+ /**
+ * Encodes the specified ElGamalCiphertext message. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {meerkat.IElGamalCiphertext} message ElGamalCiphertext message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ElGamalCiphertext.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.c1 != null && message.hasOwnProperty("c1"))
+ $root.meerkat.GroupElement.encode(message.c1, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.c2 != null && message.hasOwnProperty("c2"))
+ $root.meerkat.GroupElement.encode(message.c2, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ElGamalCiphertext message, length delimited. Does not implicitly {@link meerkat.ElGamalCiphertext.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {meerkat.IElGamalCiphertext} message ElGamalCiphertext message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ElGamalCiphertext.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an ElGamalCiphertext message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ElGamalCiphertext.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ElGamalCiphertext();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.c1 = $root.meerkat.GroupElement.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.c2 = $root.meerkat.GroupElement.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an ElGamalCiphertext message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ElGamalCiphertext.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an ElGamalCiphertext message.
+ * @function verify
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ElGamalCiphertext.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.c1 != null && message.hasOwnProperty("c1")) {
+ var error = $root.meerkat.GroupElement.verify(message.c1);
+ if (error)
+ return "c1." + error;
+ }
+ if (message.c2 != null && message.hasOwnProperty("c2")) {
+ error = $root.meerkat.GroupElement.verify(message.c2);
+ if (error)
+ return "c2." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates an ElGamalCiphertext message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ElGamalCiphertext} ElGamalCiphertext
+ */
+ ElGamalCiphertext.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ElGamalCiphertext)
+ return object;
+ var message = new $root.meerkat.ElGamalCiphertext();
+ if (object.c1 != null) {
+ if (typeof object.c1 !== "object")
+ throw TypeError(".meerkat.ElGamalCiphertext.c1: object expected");
+ message.c1 = $root.meerkat.GroupElement.fromObject(object.c1);
+ }
+ if (object.c2 != null) {
+ if (typeof object.c2 !== "object")
+ throw TypeError(".meerkat.ElGamalCiphertext.c2: object expected");
+ message.c2 = $root.meerkat.GroupElement.fromObject(object.c2);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an ElGamalCiphertext message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ElGamalCiphertext
+ * @static
+ * @param {meerkat.ElGamalCiphertext} message ElGamalCiphertext
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ElGamalCiphertext.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.c1 = null;
+ object.c2 = null;
+ }
+ if (message.c1 != null && message.hasOwnProperty("c1"))
+ object.c1 = $root.meerkat.GroupElement.toObject(message.c1, options);
+ if (message.c2 != null && message.hasOwnProperty("c2"))
+ object.c2 = $root.meerkat.GroupElement.toObject(message.c2, options);
+ return object;
+ };
+
+ /**
+ * Converts this ElGamalCiphertext to JSON.
+ * @function toJSON
+ * @memberof meerkat.ElGamalCiphertext
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ElGamalCiphertext.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ElGamalCiphertext;
+ })();
+
+ /**
+ * SignatureType enum.
+ * @enum {string}
+ * @property {number} ECDSA=0 ECDSA value
+ * @property {number} DSA=1 DSA value
+ * @property {number} RSA=2 RSA value
+ */
+ meerkat.SignatureType = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "ECDSA"] = 0;
+ values[valuesById[1] = "DSA"] = 1;
+ values[valuesById[2] = "RSA"] = 2;
+ return values;
+ })();
+
+ meerkat.BigInteger = (function() {
+
+ /**
+ * Properties of a BigInteger.
+ * @memberof meerkat
+ * @interface IBigInteger
+ * @property {Uint8Array} [data] BigInteger data
+ */
+
+ /**
+ * Constructs a new BigInteger.
+ * @memberof meerkat
+ * @classdesc Represents a BigInteger.
+ * @constructor
+ * @param {meerkat.IBigInteger=} [properties] Properties to set
+ */
+ function BigInteger(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * BigInteger data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.BigInteger
+ * @instance
+ */
+ BigInteger.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new BigInteger instance using the specified properties.
+ * @function create
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {meerkat.IBigInteger=} [properties] Properties to set
+ * @returns {meerkat.BigInteger} BigInteger instance
+ */
+ BigInteger.create = function create(properties) {
+ return new BigInteger(properties);
+ };
+
+ /**
+ * Encodes the specified BigInteger message. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {meerkat.IBigInteger} message BigInteger message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BigInteger.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified BigInteger message, length delimited. Does not implicitly {@link meerkat.BigInteger.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {meerkat.IBigInteger} message BigInteger message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ BigInteger.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a BigInteger message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.BigInteger} BigInteger
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BigInteger.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.BigInteger();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a BigInteger message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.BigInteger} BigInteger
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ BigInteger.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a BigInteger message.
+ * @function verify
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ BigInteger.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a BigInteger message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.BigInteger} BigInteger
+ */
+ BigInteger.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.BigInteger)
+ return object;
+ var message = new $root.meerkat.BigInteger();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a BigInteger message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.BigInteger
+ * @static
+ * @param {meerkat.BigInteger} message BigInteger
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ BigInteger.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this BigInteger to JSON.
+ * @function toJSON
+ * @memberof meerkat.BigInteger
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ BigInteger.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return BigInteger;
+ })();
+
+ meerkat.Signature = (function() {
+
+ /**
+ * Properties of a Signature.
+ * @memberof meerkat
+ * @interface ISignature
+ * @property {meerkat.SignatureType} [type] Signature type
+ * @property {Uint8Array} [data] Signature data
+ * @property {Uint8Array} [signerId] Signature signerId
+ */
+
+ /**
+ * Constructs a new Signature.
+ * @memberof meerkat
+ * @classdesc Represents a Signature.
+ * @constructor
+ * @param {meerkat.ISignature=} [properties] Properties to set
+ */
+ function Signature(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Signature type.
+ * @member {meerkat.SignatureType}type
+ * @memberof meerkat.Signature
+ * @instance
+ */
+ Signature.prototype.type = 0;
+
+ /**
+ * Signature data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.Signature
+ * @instance
+ */
+ Signature.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Signature signerId.
+ * @member {Uint8Array}signerId
+ * @memberof meerkat.Signature
+ * @instance
+ */
+ Signature.prototype.signerId = $util.newBuffer([]);
+
+ /**
+ * Creates a new Signature instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Signature
+ * @static
+ * @param {meerkat.ISignature=} [properties] Properties to set
+ * @returns {meerkat.Signature} Signature instance
+ */
+ Signature.create = function create(properties) {
+ return new Signature(properties);
+ };
+
+ /**
+ * Encodes the specified Signature message. Does not implicitly {@link meerkat.Signature.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Signature
+ * @static
+ * @param {meerkat.ISignature} message Signature message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Signature.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.type != null && message.hasOwnProperty("type"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data);
+ if (message.signerId != null && message.hasOwnProperty("signerId"))
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.signerId);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Signature message, length delimited. Does not implicitly {@link meerkat.Signature.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Signature
+ * @static
+ * @param {meerkat.ISignature} message Signature message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Signature.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Signature message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Signature
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Signature} Signature
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Signature.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Signature();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.type = reader.int32();
+ break;
+ case 2:
+ message.data = reader.bytes();
+ break;
+ case 3:
+ message.signerId = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Signature message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Signature
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Signature} Signature
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Signature.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Signature message.
+ * @function verify
+ * @memberof meerkat.Signature
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Signature.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.type != null && message.hasOwnProperty("type"))
+ switch (message.type) {
+ default:
+ return "type: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ if (message.signerId != null && message.hasOwnProperty("signerId"))
+ if (!(message.signerId && typeof message.signerId.length === "number" || $util.isString(message.signerId)))
+ return "signerId: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a Signature message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Signature
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Signature} Signature
+ */
+ Signature.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Signature)
+ return object;
+ var message = new $root.meerkat.Signature();
+ switch (object.type) {
+ case "ECDSA":
+ case 0:
+ message.type = 0;
+ break;
+ case "DSA":
+ case 1:
+ message.type = 1;
+ break;
+ case "RSA":
+ case 2:
+ message.type = 2;
+ break;
+ }
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ if (object.signerId != null)
+ if (typeof object.signerId === "string")
+ $util.base64.decode(object.signerId, message.signerId = $util.newBuffer($util.base64.length(object.signerId)), 0);
+ else if (object.signerId.length)
+ message.signerId = object.signerId;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Signature message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Signature
+ * @static
+ * @param {meerkat.Signature} message Signature
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Signature.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.type = options.enums === String ? "ECDSA" : 0;
+ object.data = options.bytes === String ? "" : [];
+ object.signerId = options.bytes === String ? "" : [];
+ }
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = options.enums === String ? $root.meerkat.SignatureType[message.type] : message.type;
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ if (message.signerId != null && message.hasOwnProperty("signerId"))
+ object.signerId = options.bytes === String ? $util.base64.encode(message.signerId, 0, message.signerId.length) : options.bytes === Array ? Array.prototype.slice.call(message.signerId) : message.signerId;
+ return object;
+ };
+
+ /**
+ * Converts this Signature to JSON.
+ * @function toJSON
+ * @memberof meerkat.Signature
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Signature.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return Signature;
+ })();
+
+ meerkat.SignatureVerificationKey = (function() {
+
+ /**
+ * Properties of a SignatureVerificationKey.
+ * @memberof meerkat
+ * @interface ISignatureVerificationKey
+ * @property {meerkat.SignatureType} [type] SignatureVerificationKey type
+ * @property {Uint8Array} [data] SignatureVerificationKey data
+ */
+
+ /**
+ * Constructs a new SignatureVerificationKey.
+ * @memberof meerkat
+ * @classdesc Represents a SignatureVerificationKey.
+ * @constructor
+ * @param {meerkat.ISignatureVerificationKey=} [properties] Properties to set
+ */
+ function SignatureVerificationKey(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * SignatureVerificationKey type.
+ * @member {meerkat.SignatureType}type
+ * @memberof meerkat.SignatureVerificationKey
+ * @instance
+ */
+ SignatureVerificationKey.prototype.type = 0;
+
+ /**
+ * SignatureVerificationKey data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.SignatureVerificationKey
+ * @instance
+ */
+ SignatureVerificationKey.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new SignatureVerificationKey instance using the specified properties.
+ * @function create
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {meerkat.ISignatureVerificationKey=} [properties] Properties to set
+ * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey instance
+ */
+ SignatureVerificationKey.create = function create(properties) {
+ return new SignatureVerificationKey(properties);
+ };
+
+ /**
+ * Encodes the specified SignatureVerificationKey message. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {meerkat.ISignatureVerificationKey} message SignatureVerificationKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SignatureVerificationKey.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.type != null && message.hasOwnProperty("type"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified SignatureVerificationKey message, length delimited. Does not implicitly {@link meerkat.SignatureVerificationKey.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {meerkat.ISignatureVerificationKey} message SignatureVerificationKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ SignatureVerificationKey.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a SignatureVerificationKey message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SignatureVerificationKey.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.SignatureVerificationKey();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.type = reader.int32();
+ break;
+ case 2:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a SignatureVerificationKey message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ SignatureVerificationKey.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a SignatureVerificationKey message.
+ * @function verify
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ SignatureVerificationKey.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.type != null && message.hasOwnProperty("type"))
+ switch (message.type) {
+ default:
+ return "type: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ break;
+ }
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a SignatureVerificationKey message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.SignatureVerificationKey} SignatureVerificationKey
+ */
+ SignatureVerificationKey.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.SignatureVerificationKey)
+ return object;
+ var message = new $root.meerkat.SignatureVerificationKey();
+ switch (object.type) {
+ case "ECDSA":
+ case 0:
+ message.type = 0;
+ break;
+ case "DSA":
+ case 1:
+ message.type = 1;
+ break;
+ case "RSA":
+ case 2:
+ message.type = 2;
+ break;
+ }
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a SignatureVerificationKey message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.SignatureVerificationKey
+ * @static
+ * @param {meerkat.SignatureVerificationKey} message SignatureVerificationKey
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ SignatureVerificationKey.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.type = options.enums === String ? "ECDSA" : 0;
+ object.data = options.bytes === String ? "" : [];
+ }
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = options.enums === String ? $root.meerkat.SignatureType[message.type] : message.type;
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this SignatureVerificationKey to JSON.
+ * @function toJSON
+ * @memberof meerkat.SignatureVerificationKey
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ SignatureVerificationKey.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return SignatureVerificationKey;
+ })();
+
+ meerkat.EncryptionPublicKey = (function() {
+
+ /**
+ * Properties of an EncryptionPublicKey.
+ * @memberof meerkat
+ * @interface IEncryptionPublicKey
+ * @property {Uint8Array} [data] EncryptionPublicKey data
+ */
+
+ /**
+ * Constructs a new EncryptionPublicKey.
+ * @memberof meerkat
+ * @classdesc Represents an EncryptionPublicKey.
+ * @constructor
+ * @param {meerkat.IEncryptionPublicKey=} [properties] Properties to set
+ */
+ function EncryptionPublicKey(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * EncryptionPublicKey data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.EncryptionPublicKey
+ * @instance
+ */
+ EncryptionPublicKey.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new EncryptionPublicKey instance using the specified properties.
+ * @function create
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {meerkat.IEncryptionPublicKey=} [properties] Properties to set
+ * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey instance
+ */
+ EncryptionPublicKey.create = function create(properties) {
+ return new EncryptionPublicKey(properties);
+ };
+
+ /**
+ * Encodes the specified EncryptionPublicKey message. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {meerkat.IEncryptionPublicKey} message EncryptionPublicKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ EncryptionPublicKey.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified EncryptionPublicKey message, length delimited. Does not implicitly {@link meerkat.EncryptionPublicKey.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {meerkat.IEncryptionPublicKey} message EncryptionPublicKey message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ EncryptionPublicKey.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an EncryptionPublicKey message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ EncryptionPublicKey.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.EncryptionPublicKey();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an EncryptionPublicKey message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ EncryptionPublicKey.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an EncryptionPublicKey message.
+ * @function verify
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ EncryptionPublicKey.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates an EncryptionPublicKey message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.EncryptionPublicKey} EncryptionPublicKey
+ */
+ EncryptionPublicKey.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.EncryptionPublicKey)
+ return object;
+ var message = new $root.meerkat.EncryptionPublicKey();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an EncryptionPublicKey message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.EncryptionPublicKey
+ * @static
+ * @param {meerkat.EncryptionPublicKey} message EncryptionPublicKey
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ EncryptionPublicKey.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this EncryptionPublicKey to JSON.
+ * @function toJSON
+ * @memberof meerkat.EncryptionPublicKey
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ EncryptionPublicKey.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return EncryptionPublicKey;
+ })();
+
+ meerkat.EncryptionRandomness = (function() {
+
+ /**
+ * Properties of an EncryptionRandomness.
+ * @memberof meerkat
+ * @interface IEncryptionRandomness
+ * @property {Uint8Array} [data] EncryptionRandomness data
+ */
+
+ /**
+ * Constructs a new EncryptionRandomness.
+ * @memberof meerkat
+ * @classdesc Represents an EncryptionRandomness.
+ * @constructor
+ * @param {meerkat.IEncryptionRandomness=} [properties] Properties to set
+ */
+ function EncryptionRandomness(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * EncryptionRandomness data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.EncryptionRandomness
+ * @instance
+ */
+ EncryptionRandomness.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new EncryptionRandomness instance using the specified properties.
+ * @function create
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {meerkat.IEncryptionRandomness=} [properties] Properties to set
+ * @returns {meerkat.EncryptionRandomness} EncryptionRandomness instance
+ */
+ EncryptionRandomness.create = function create(properties) {
+ return new EncryptionRandomness(properties);
+ };
+
+ /**
+ * Encodes the specified EncryptionRandomness message. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {meerkat.IEncryptionRandomness} message EncryptionRandomness message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ EncryptionRandomness.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified EncryptionRandomness message, length delimited. Does not implicitly {@link meerkat.EncryptionRandomness.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {meerkat.IEncryptionRandomness} message EncryptionRandomness message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ EncryptionRandomness.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an EncryptionRandomness message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.EncryptionRandomness} EncryptionRandomness
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ EncryptionRandomness.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.EncryptionRandomness();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an EncryptionRandomness message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.EncryptionRandomness} EncryptionRandomness
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ EncryptionRandomness.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an EncryptionRandomness message.
+ * @function verify
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ EncryptionRandomness.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates an EncryptionRandomness message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.EncryptionRandomness} EncryptionRandomness
+ */
+ EncryptionRandomness.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.EncryptionRandomness)
+ return object;
+ var message = new $root.meerkat.EncryptionRandomness();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from an EncryptionRandomness message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.EncryptionRandomness
+ * @static
+ * @param {meerkat.EncryptionRandomness} message EncryptionRandomness
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ EncryptionRandomness.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this EncryptionRandomness to JSON.
+ * @function toJSON
+ * @memberof meerkat.EncryptionRandomness
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ EncryptionRandomness.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return EncryptionRandomness;
+ })();
+
+ meerkat.RandomnessGenerationProof = (function() {
+
+ /**
+ * Properties of a RandomnessGenerationProof.
+ * @memberof meerkat
+ * @interface IRandomnessGenerationProof
+ * @property {Uint8Array} [data] RandomnessGenerationProof data
+ */
+
+ /**
+ * Constructs a new RandomnessGenerationProof.
+ * @memberof meerkat
+ * @classdesc Represents a RandomnessGenerationProof.
+ * @constructor
+ * @param {meerkat.IRandomnessGenerationProof=} [properties] Properties to set
+ */
+ function RandomnessGenerationProof(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * RandomnessGenerationProof data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.RandomnessGenerationProof
+ * @instance
+ */
+ RandomnessGenerationProof.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new RandomnessGenerationProof instance using the specified properties.
+ * @function create
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {meerkat.IRandomnessGenerationProof=} [properties] Properties to set
+ * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof instance
+ */
+ RandomnessGenerationProof.create = function create(properties) {
+ return new RandomnessGenerationProof(properties);
+ };
+
+ /**
+ * Encodes the specified RandomnessGenerationProof message. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {meerkat.IRandomnessGenerationProof} message RandomnessGenerationProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RandomnessGenerationProof.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified RandomnessGenerationProof message, length delimited. Does not implicitly {@link meerkat.RandomnessGenerationProof.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {meerkat.IRandomnessGenerationProof} message RandomnessGenerationProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RandomnessGenerationProof.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a RandomnessGenerationProof message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RandomnessGenerationProof.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.RandomnessGenerationProof();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a RandomnessGenerationProof message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RandomnessGenerationProof.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a RandomnessGenerationProof message.
+ * @function verify
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ RandomnessGenerationProof.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a RandomnessGenerationProof message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.RandomnessGenerationProof} RandomnessGenerationProof
+ */
+ RandomnessGenerationProof.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.RandomnessGenerationProof)
+ return object;
+ var message = new $root.meerkat.RandomnessGenerationProof();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a RandomnessGenerationProof message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.RandomnessGenerationProof
+ * @static
+ * @param {meerkat.RandomnessGenerationProof} message RandomnessGenerationProof
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ RandomnessGenerationProof.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this RandomnessGenerationProof to JSON.
+ * @function toJSON
+ * @memberof meerkat.RandomnessGenerationProof
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ RandomnessGenerationProof.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return RandomnessGenerationProof;
+ })();
+
+ meerkat.RerandomizableEncryptedMessage = (function() {
+
+ /**
+ * Properties of a RerandomizableEncryptedMessage.
+ * @memberof meerkat
+ * @interface IRerandomizableEncryptedMessage
+ * @property {Uint8Array} [data] RerandomizableEncryptedMessage data
+ */
+
+ /**
+ * Constructs a new RerandomizableEncryptedMessage.
+ * @memberof meerkat
+ * @classdesc Represents a RerandomizableEncryptedMessage.
+ * @constructor
+ * @param {meerkat.IRerandomizableEncryptedMessage=} [properties] Properties to set
+ */
+ function RerandomizableEncryptedMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * RerandomizableEncryptedMessage data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @instance
+ */
+ RerandomizableEncryptedMessage.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new RerandomizableEncryptedMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {meerkat.IRerandomizableEncryptedMessage=} [properties] Properties to set
+ * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage instance
+ */
+ RerandomizableEncryptedMessage.create = function create(properties) {
+ return new RerandomizableEncryptedMessage(properties);
+ };
+
+ /**
+ * Encodes the specified RerandomizableEncryptedMessage message. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {meerkat.IRerandomizableEncryptedMessage} message RerandomizableEncryptedMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RerandomizableEncryptedMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified RerandomizableEncryptedMessage message, length delimited. Does not implicitly {@link meerkat.RerandomizableEncryptedMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {meerkat.IRerandomizableEncryptedMessage} message RerandomizableEncryptedMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ RerandomizableEncryptedMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RerandomizableEncryptedMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.RerandomizableEncryptedMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a RerandomizableEncryptedMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ RerandomizableEncryptedMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a RerandomizableEncryptedMessage message.
+ * @function verify
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ RerandomizableEncryptedMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a RerandomizableEncryptedMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.RerandomizableEncryptedMessage} RerandomizableEncryptedMessage
+ */
+ RerandomizableEncryptedMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.RerandomizableEncryptedMessage)
+ return object;
+ var message = new $root.meerkat.RerandomizableEncryptedMessage();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a RerandomizableEncryptedMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @static
+ * @param {meerkat.RerandomizableEncryptedMessage} message RerandomizableEncryptedMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ RerandomizableEncryptedMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this RerandomizableEncryptedMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.RerandomizableEncryptedMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ RerandomizableEncryptedMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return RerandomizableEncryptedMessage;
+ })();
+
+ meerkat.Payload = (function() {
+
+ /**
+ * Properties of a Payload.
+ * @memberof meerkat
+ * @interface IPayload
+ * @property {meerkat.Payload.Type} [type] Payload type
+ * @property {meerkat.IIDMessage} [id] Payload id
+ * @property {meerkat.IShareMessage} [share] Payload share
+ * @property {meerkat.ICommitmentMessage} [commitment] Payload commitment
+ */
+
+ /**
+ * Constructs a new Payload.
+ * @memberof meerkat
+ * @classdesc Represents a Payload.
+ * @constructor
+ * @param {meerkat.IPayload=} [properties] Properties to set
+ */
+ function Payload(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Payload type.
+ * @member {meerkat.Payload.Type}type
+ * @memberof meerkat.Payload
+ * @instance
+ */
+ Payload.prototype.type = 0;
+
+ /**
+ * Payload id.
+ * @member {(meerkat.IIDMessage|null|undefined)}id
+ * @memberof meerkat.Payload
+ * @instance
+ */
+ Payload.prototype.id = null;
+
+ /**
+ * Payload share.
+ * @member {(meerkat.IShareMessage|null|undefined)}share
+ * @memberof meerkat.Payload
+ * @instance
+ */
+ Payload.prototype.share = null;
+
+ /**
+ * Payload commitment.
+ * @member {(meerkat.ICommitmentMessage|null|undefined)}commitment
+ * @memberof meerkat.Payload
+ * @instance
+ */
+ Payload.prototype.commitment = null;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * Payload payloadData.
+ * @member {string|undefined} payloadData
+ * @memberof meerkat.Payload
+ * @instance
+ */
+ Object.defineProperty(Payload.prototype, "payloadData", {
+ get: $util.oneOfGetter($oneOfFields = ["id", "share", "commitment"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new Payload instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Payload
+ * @static
+ * @param {meerkat.IPayload=} [properties] Properties to set
+ * @returns {meerkat.Payload} Payload instance
+ */
+ Payload.create = function create(properties) {
+ return new Payload(properties);
+ };
+
+ /**
+ * Encodes the specified Payload message. Does not implicitly {@link meerkat.Payload.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Payload
+ * @static
+ * @param {meerkat.IPayload} message Payload message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Payload.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.type != null && message.hasOwnProperty("type"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.type);
+ if (message.id != null && message.hasOwnProperty("id"))
+ $root.meerkat.IDMessage.encode(message.id, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ if (message.share != null && message.hasOwnProperty("share"))
+ $root.meerkat.ShareMessage.encode(message.share, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim();
+ if (message.commitment != null && message.hasOwnProperty("commitment"))
+ $root.meerkat.CommitmentMessage.encode(message.commitment, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Payload message, length delimited. Does not implicitly {@link meerkat.Payload.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Payload
+ * @static
+ * @param {meerkat.IPayload} message Payload message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Payload.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Payload message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Payload
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Payload} Payload
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Payload.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Payload();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.type = reader.int32();
+ break;
+ case 5:
+ message.id = $root.meerkat.IDMessage.decode(reader, reader.uint32());
+ break;
+ case 6:
+ message.share = $root.meerkat.ShareMessage.decode(reader, reader.uint32());
+ break;
+ case 7:
+ message.commitment = $root.meerkat.CommitmentMessage.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Payload message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Payload
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Payload} Payload
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Payload.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Payload message.
+ * @function verify
+ * @memberof meerkat.Payload
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Payload.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.type != null && message.hasOwnProperty("type"))
+ switch (message.type) {
+ default:
+ return "type: enum value expected";
+ case 0:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ case 7:
+ case 8:
+ break;
+ }
+ if (message.id != null && message.hasOwnProperty("id")) {
+ properties.payloadData = 1;
+ var error = $root.meerkat.IDMessage.verify(message.id);
+ if (error)
+ return "id." + error;
+ }
+ if (message.share != null && message.hasOwnProperty("share")) {
+ if (properties.payloadData === 1)
+ return "payloadData: multiple values";
+ properties.payloadData = 1;
+ error = $root.meerkat.ShareMessage.verify(message.share);
+ if (error)
+ return "share." + error;
+ }
+ if (message.commitment != null && message.hasOwnProperty("commitment")) {
+ if (properties.payloadData === 1)
+ return "payloadData: multiple values";
+ properties.payloadData = 1;
+ error = $root.meerkat.CommitmentMessage.verify(message.commitment);
+ if (error)
+ return "commitment." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Payload message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Payload
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Payload} Payload
+ */
+ Payload.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Payload)
+ return object;
+ var message = new $root.meerkat.Payload();
+ switch (object.type) {
+ case "SHARE":
+ case 0:
+ message.type = 0;
+ break;
+ case "COMMITMENT":
+ case 1:
+ message.type = 1;
+ break;
+ case "COMPLAINT":
+ case 2:
+ message.type = 2;
+ break;
+ case "DONE":
+ case 3:
+ message.type = 3;
+ break;
+ case "ANSWER":
+ case 4:
+ message.type = 4;
+ break;
+ case "YCOMMITMENT":
+ case 5:
+ message.type = 5;
+ break;
+ case "YCOMPLAINT":
+ case 6:
+ message.type = 6;
+ break;
+ case "YANSWER":
+ case 7:
+ message.type = 7;
+ break;
+ case "ABORT":
+ case 8:
+ message.type = 8;
+ break;
+ }
+ if (object.id != null) {
+ if (typeof object.id !== "object")
+ throw TypeError(".meerkat.Payload.id: object expected");
+ message.id = $root.meerkat.IDMessage.fromObject(object.id);
+ }
+ if (object.share != null) {
+ if (typeof object.share !== "object")
+ throw TypeError(".meerkat.Payload.share: object expected");
+ message.share = $root.meerkat.ShareMessage.fromObject(object.share);
+ }
+ if (object.commitment != null) {
+ if (typeof object.commitment !== "object")
+ throw TypeError(".meerkat.Payload.commitment: object expected");
+ message.commitment = $root.meerkat.CommitmentMessage.fromObject(object.commitment);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Payload message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Payload
+ * @static
+ * @param {meerkat.Payload} message Payload
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Payload.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.type = options.enums === String ? "SHARE" : 0;
+ if (message.type != null && message.hasOwnProperty("type"))
+ object.type = options.enums === String ? $root.meerkat.Payload.Type[message.type] : message.type;
+ if (message.id != null && message.hasOwnProperty("id")) {
+ object.id = $root.meerkat.IDMessage.toObject(message.id, options);
+ if (options.oneofs)
+ object.payloadData = "id";
+ }
+ if (message.share != null && message.hasOwnProperty("share")) {
+ object.share = $root.meerkat.ShareMessage.toObject(message.share, options);
+ if (options.oneofs)
+ object.payloadData = "share";
+ }
+ if (message.commitment != null && message.hasOwnProperty("commitment")) {
+ object.commitment = $root.meerkat.CommitmentMessage.toObject(message.commitment, options);
+ if (options.oneofs)
+ object.payloadData = "commitment";
+ }
+ return object;
+ };
+
+ /**
+ * Converts this Payload to JSON.
+ * @function toJSON
+ * @memberof meerkat.Payload
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Payload.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ /**
+ * Type enum.
+ * @enum {string}
+ * @property {number} SHARE=0 SHARE value
+ * @property {number} COMMITMENT=1 COMMITMENT value
+ * @property {number} COMPLAINT=2 COMPLAINT value
+ * @property {number} DONE=3 DONE value
+ * @property {number} ANSWER=4 ANSWER value
+ * @property {number} YCOMMITMENT=5 YCOMMITMENT value
+ * @property {number} YCOMPLAINT=6 YCOMPLAINT value
+ * @property {number} YANSWER=7 YANSWER value
+ * @property {number} ABORT=8 ABORT value
+ */
+ Payload.Type = (function() {
+ var valuesById = {}, values = Object.create(valuesById);
+ values[valuesById[0] = "SHARE"] = 0;
+ values[valuesById[1] = "COMMITMENT"] = 1;
+ values[valuesById[2] = "COMPLAINT"] = 2;
+ values[valuesById[3] = "DONE"] = 3;
+ values[valuesById[4] = "ANSWER"] = 4;
+ values[valuesById[5] = "YCOMMITMENT"] = 5;
+ values[valuesById[6] = "YCOMPLAINT"] = 6;
+ values[valuesById[7] = "YANSWER"] = 7;
+ values[valuesById[8] = "ABORT"] = 8;
+ return values;
+ })();
+
+ return Payload;
+ })();
+
+ meerkat.IDMessage = (function() {
+
+ /**
+ * Properties of a IDMessage.
+ * @memberof meerkat
+ * @interface IIDMessage
+ * @property {number} [id] IDMessage id
+ */
+
+ /**
+ * Constructs a new IDMessage.
+ * @memberof meerkat
+ * @classdesc Represents a IDMessage.
+ * @constructor
+ * @param {meerkat.IIDMessage=} [properties] Properties to set
+ */
+ function IDMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * IDMessage id.
+ * @member {number}id
+ * @memberof meerkat.IDMessage
+ * @instance
+ */
+ IDMessage.prototype.id = 0;
+
+ /**
+ * Creates a new IDMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {meerkat.IIDMessage=} [properties] Properties to set
+ * @returns {meerkat.IDMessage} IDMessage instance
+ */
+ IDMessage.create = function create(properties) {
+ return new IDMessage(properties);
+ };
+
+ /**
+ * Encodes the specified IDMessage message. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {meerkat.IIDMessage} message IDMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ IDMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.id != null && message.hasOwnProperty("id"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.id);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified IDMessage message, length delimited. Does not implicitly {@link meerkat.IDMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {meerkat.IIDMessage} message IDMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ IDMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a IDMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.IDMessage} IDMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ IDMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.IDMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.id = reader.int32();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a IDMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.IDMessage} IDMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ IDMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a IDMessage message.
+ * @function verify
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ IDMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.id != null && message.hasOwnProperty("id"))
+ if (!$util.isInteger(message.id))
+ return "id: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a IDMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.IDMessage} IDMessage
+ */
+ IDMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.IDMessage)
+ return object;
+ var message = new $root.meerkat.IDMessage();
+ if (object.id != null)
+ message.id = object.id | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a IDMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.IDMessage
+ * @static
+ * @param {meerkat.IDMessage} message IDMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ IDMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.id = 0;
+ if (message.id != null && message.hasOwnProperty("id"))
+ object.id = message.id;
+ return object;
+ };
+
+ /**
+ * Converts this IDMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.IDMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ IDMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return IDMessage;
+ })();
+
+ meerkat.ShareMessage = (function() {
+
+ /**
+ * Properties of a ShareMessage.
+ * @memberof meerkat
+ * @interface IShareMessage
+ * @property {number} [i] ShareMessage i
+ * @property {number} [j] ShareMessage j
+ * @property {Uint8Array} [share] ShareMessage share
+ * @property {Uint8Array} [shareT] ShareMessage shareT
+ */
+
+ /**
+ * Constructs a new ShareMessage.
+ * @memberof meerkat
+ * @classdesc Represents a ShareMessage.
+ * @constructor
+ * @param {meerkat.IShareMessage=} [properties] Properties to set
+ */
+ function ShareMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ShareMessage i.
+ * @member {number}i
+ * @memberof meerkat.ShareMessage
+ * @instance
+ */
+ ShareMessage.prototype.i = 0;
+
+ /**
+ * ShareMessage j.
+ * @member {number}j
+ * @memberof meerkat.ShareMessage
+ * @instance
+ */
+ ShareMessage.prototype.j = 0;
+
+ /**
+ * ShareMessage share.
+ * @member {Uint8Array}share
+ * @memberof meerkat.ShareMessage
+ * @instance
+ */
+ ShareMessage.prototype.share = $util.newBuffer([]);
+
+ /**
+ * ShareMessage shareT.
+ * @member {Uint8Array}shareT
+ * @memberof meerkat.ShareMessage
+ * @instance
+ */
+ ShareMessage.prototype.shareT = $util.newBuffer([]);
+
+ /**
+ * Creates a new ShareMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {meerkat.IShareMessage=} [properties] Properties to set
+ * @returns {meerkat.ShareMessage} ShareMessage instance
+ */
+ ShareMessage.create = function create(properties) {
+ return new ShareMessage(properties);
+ };
+
+ /**
+ * Encodes the specified ShareMessage message. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {meerkat.IShareMessage} message ShareMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ShareMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.i != null && message.hasOwnProperty("i"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.i);
+ if (message.j != null && message.hasOwnProperty("j"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.j);
+ if (message.share != null && message.hasOwnProperty("share"))
+ writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.share);
+ if (message.shareT != null && message.hasOwnProperty("shareT"))
+ writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.shareT);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ShareMessage message, length delimited. Does not implicitly {@link meerkat.ShareMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {meerkat.IShareMessage} message ShareMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ShareMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ShareMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ShareMessage} ShareMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ShareMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ShareMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.i = reader.int32();
+ break;
+ case 2:
+ message.j = reader.int32();
+ break;
+ case 3:
+ message.share = reader.bytes();
+ break;
+ case 4:
+ message.shareT = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ShareMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ShareMessage} ShareMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ShareMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ShareMessage message.
+ * @function verify
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ShareMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.i != null && message.hasOwnProperty("i"))
+ if (!$util.isInteger(message.i))
+ return "i: integer expected";
+ if (message.j != null && message.hasOwnProperty("j"))
+ if (!$util.isInteger(message.j))
+ return "j: integer expected";
+ if (message.share != null && message.hasOwnProperty("share"))
+ if (!(message.share && typeof message.share.length === "number" || $util.isString(message.share)))
+ return "share: buffer expected";
+ if (message.shareT != null && message.hasOwnProperty("shareT"))
+ if (!(message.shareT && typeof message.shareT.length === "number" || $util.isString(message.shareT)))
+ return "shareT: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a ShareMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ShareMessage} ShareMessage
+ */
+ ShareMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ShareMessage)
+ return object;
+ var message = new $root.meerkat.ShareMessage();
+ if (object.i != null)
+ message.i = object.i | 0;
+ if (object.j != null)
+ message.j = object.j | 0;
+ if (object.share != null)
+ if (typeof object.share === "string")
+ $util.base64.decode(object.share, message.share = $util.newBuffer($util.base64.length(object.share)), 0);
+ else if (object.share.length)
+ message.share = object.share;
+ if (object.shareT != null)
+ if (typeof object.shareT === "string")
+ $util.base64.decode(object.shareT, message.shareT = $util.newBuffer($util.base64.length(object.shareT)), 0);
+ else if (object.shareT.length)
+ message.shareT = object.shareT;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ShareMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ShareMessage
+ * @static
+ * @param {meerkat.ShareMessage} message ShareMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ShareMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.i = 0;
+ object.j = 0;
+ object.share = options.bytes === String ? "" : [];
+ object.shareT = options.bytes === String ? "" : [];
+ }
+ if (message.i != null && message.hasOwnProperty("i"))
+ object.i = message.i;
+ if (message.j != null && message.hasOwnProperty("j"))
+ object.j = message.j;
+ if (message.share != null && message.hasOwnProperty("share"))
+ object.share = options.bytes === String ? $util.base64.encode(message.share, 0, message.share.length) : options.bytes === Array ? Array.prototype.slice.call(message.share) : message.share;
+ if (message.shareT != null && message.hasOwnProperty("shareT"))
+ object.shareT = options.bytes === String ? $util.base64.encode(message.shareT, 0, message.shareT.length) : options.bytes === Array ? Array.prototype.slice.call(message.shareT) : message.shareT;
+ return object;
+ };
+
+ /**
+ * Converts this ShareMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.ShareMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ShareMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ShareMessage;
+ })();
+
+ meerkat.CommitmentMessage = (function() {
+
+ /**
+ * Properties of a CommitmentMessage.
+ * @memberof meerkat
+ * @interface ICommitmentMessage
+ * @property {number} [k] CommitmentMessage k
+ * @property {Uint8Array} [commitment] CommitmentMessage commitment
+ */
+
+ /**
+ * Constructs a new CommitmentMessage.
+ * @memberof meerkat
+ * @classdesc Represents a CommitmentMessage.
+ * @constructor
+ * @param {meerkat.ICommitmentMessage=} [properties] Properties to set
+ */
+ function CommitmentMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * CommitmentMessage k.
+ * @member {number}k
+ * @memberof meerkat.CommitmentMessage
+ * @instance
+ */
+ CommitmentMessage.prototype.k = 0;
+
+ /**
+ * CommitmentMessage commitment.
+ * @member {Uint8Array}commitment
+ * @memberof meerkat.CommitmentMessage
+ * @instance
+ */
+ CommitmentMessage.prototype.commitment = $util.newBuffer([]);
+
+ /**
+ * Creates a new CommitmentMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {meerkat.ICommitmentMessage=} [properties] Properties to set
+ * @returns {meerkat.CommitmentMessage} CommitmentMessage instance
+ */
+ CommitmentMessage.create = function create(properties) {
+ return new CommitmentMessage(properties);
+ };
+
+ /**
+ * Encodes the specified CommitmentMessage message. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {meerkat.ICommitmentMessage} message CommitmentMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CommitmentMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.k != null && message.hasOwnProperty("k"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.k);
+ if (message.commitment != null && message.hasOwnProperty("commitment"))
+ writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.commitment);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified CommitmentMessage message, length delimited. Does not implicitly {@link meerkat.CommitmentMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {meerkat.ICommitmentMessage} message CommitmentMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ CommitmentMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a CommitmentMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.CommitmentMessage} CommitmentMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CommitmentMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.CommitmentMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.k = reader.int32();
+ break;
+ case 2:
+ message.commitment = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a CommitmentMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.CommitmentMessage} CommitmentMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ CommitmentMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a CommitmentMessage message.
+ * @function verify
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ CommitmentMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.k != null && message.hasOwnProperty("k"))
+ if (!$util.isInteger(message.k))
+ return "k: integer expected";
+ if (message.commitment != null && message.hasOwnProperty("commitment"))
+ if (!(message.commitment && typeof message.commitment.length === "number" || $util.isString(message.commitment)))
+ return "commitment: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a CommitmentMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.CommitmentMessage} CommitmentMessage
+ */
+ CommitmentMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.CommitmentMessage)
+ return object;
+ var message = new $root.meerkat.CommitmentMessage();
+ if (object.k != null)
+ message.k = object.k | 0;
+ if (object.commitment != null)
+ if (typeof object.commitment === "string")
+ $util.base64.decode(object.commitment, message.commitment = $util.newBuffer($util.base64.length(object.commitment)), 0);
+ else if (object.commitment.length)
+ message.commitment = object.commitment;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a CommitmentMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.CommitmentMessage
+ * @static
+ * @param {meerkat.CommitmentMessage} message CommitmentMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ CommitmentMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.k = 0;
+ object.commitment = options.bytes === String ? "" : [];
+ }
+ if (message.k != null && message.hasOwnProperty("k"))
+ object.k = message.k;
+ if (message.commitment != null && message.hasOwnProperty("commitment"))
+ object.commitment = options.bytes === String ? $util.base64.encode(message.commitment, 0, message.commitment.length) : options.bytes === Array ? Array.prototype.slice.call(message.commitment) : message.commitment;
+ return object;
+ };
+
+ /**
+ * Converts this CommitmentMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.CommitmentMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ CommitmentMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return CommitmentMessage;
+ })();
+
+ meerkat.MixBatchHeader = (function() {
+
+ /**
+ * Properties of a MixBatchHeader.
+ * @memberof meerkat
+ * @interface IMixBatchHeader
+ * @property {number} [logN] MixBatchHeader logN
+ * @property {number} [layers] MixBatchHeader layers
+ */
+
+ /**
+ * Constructs a new MixBatchHeader.
+ * @memberof meerkat
+ * @classdesc Represents a MixBatchHeader.
+ * @constructor
+ * @param {meerkat.IMixBatchHeader=} [properties] Properties to set
+ */
+ function MixBatchHeader(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * MixBatchHeader logN.
+ * @member {number}logN
+ * @memberof meerkat.MixBatchHeader
+ * @instance
+ */
+ MixBatchHeader.prototype.logN = 0;
+
+ /**
+ * MixBatchHeader layers.
+ * @member {number}layers
+ * @memberof meerkat.MixBatchHeader
+ * @instance
+ */
+ MixBatchHeader.prototype.layers = 0;
+
+ /**
+ * Creates a new MixBatchHeader instance using the specified properties.
+ * @function create
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {meerkat.IMixBatchHeader=} [properties] Properties to set
+ * @returns {meerkat.MixBatchHeader} MixBatchHeader instance
+ */
+ MixBatchHeader.create = function create(properties) {
+ return new MixBatchHeader(properties);
+ };
+
+ /**
+ * Encodes the specified MixBatchHeader message. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {meerkat.IMixBatchHeader} message MixBatchHeader message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MixBatchHeader.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.logN != null && message.hasOwnProperty("logN"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.logN);
+ if (message.layers != null && message.hasOwnProperty("layers"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.layers);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified MixBatchHeader message, length delimited. Does not implicitly {@link meerkat.MixBatchHeader.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {meerkat.IMixBatchHeader} message MixBatchHeader message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ MixBatchHeader.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a MixBatchHeader message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.MixBatchHeader} MixBatchHeader
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MixBatchHeader.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.MixBatchHeader();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.logN = reader.int32();
+ break;
+ case 2:
+ message.layers = reader.int32();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a MixBatchHeader message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.MixBatchHeader} MixBatchHeader
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ MixBatchHeader.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a MixBatchHeader message.
+ * @function verify
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ MixBatchHeader.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.logN != null && message.hasOwnProperty("logN"))
+ if (!$util.isInteger(message.logN))
+ return "logN: integer expected";
+ if (message.layers != null && message.hasOwnProperty("layers"))
+ if (!$util.isInteger(message.layers))
+ return "layers: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a MixBatchHeader message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.MixBatchHeader} MixBatchHeader
+ */
+ MixBatchHeader.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.MixBatchHeader)
+ return object;
+ var message = new $root.meerkat.MixBatchHeader();
+ if (object.logN != null)
+ message.logN = object.logN | 0;
+ if (object.layers != null)
+ message.layers = object.layers | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a MixBatchHeader message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.MixBatchHeader
+ * @static
+ * @param {meerkat.MixBatchHeader} message MixBatchHeader
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ MixBatchHeader.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.logN = 0;
+ object.layers = 0;
+ }
+ if (message.logN != null && message.hasOwnProperty("logN"))
+ object.logN = message.logN;
+ if (message.layers != null && message.hasOwnProperty("layers"))
+ object.layers = message.layers;
+ return object;
+ };
+
+ /**
+ * Converts this MixBatchHeader to JSON.
+ * @function toJSON
+ * @memberof meerkat.MixBatchHeader
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ MixBatchHeader.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return MixBatchHeader;
+ })();
+
+ meerkat.Plaintext = (function() {
+
+ /**
+ * Properties of a Plaintext.
+ * @memberof meerkat
+ * @interface IPlaintext
+ * @property {Uint8Array} [data] Plaintext data
+ */
+
+ /**
+ * Constructs a new Plaintext.
+ * @memberof meerkat
+ * @classdesc Represents a Plaintext.
+ * @constructor
+ * @param {meerkat.IPlaintext=} [properties] Properties to set
+ */
+ function Plaintext(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Plaintext data.
+ * @member {Uint8Array}data
+ * @memberof meerkat.Plaintext
+ * @instance
+ */
+ Plaintext.prototype.data = $util.newBuffer([]);
+
+ /**
+ * Creates a new Plaintext instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {meerkat.IPlaintext=} [properties] Properties to set
+ * @returns {meerkat.Plaintext} Plaintext instance
+ */
+ Plaintext.create = function create(properties) {
+ return new Plaintext(properties);
+ };
+
+ /**
+ * Encodes the specified Plaintext message. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {meerkat.IPlaintext} message Plaintext message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Plaintext.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.data != null && message.hasOwnProperty("data"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.data);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Plaintext message, length delimited. Does not implicitly {@link meerkat.Plaintext.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {meerkat.IPlaintext} message Plaintext message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Plaintext.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Plaintext message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Plaintext} Plaintext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Plaintext.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Plaintext();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.data = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Plaintext message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Plaintext} Plaintext
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Plaintext.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Plaintext message.
+ * @function verify
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Plaintext.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.data != null && message.hasOwnProperty("data"))
+ if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data)))
+ return "data: buffer expected";
+ return null;
+ };
+
+ /**
+ * Creates a Plaintext message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Plaintext} Plaintext
+ */
+ Plaintext.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Plaintext)
+ return object;
+ var message = new $root.meerkat.Plaintext();
+ if (object.data != null)
+ if (typeof object.data === "string")
+ $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0);
+ else if (object.data.length)
+ message.data = object.data;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Plaintext message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Plaintext
+ * @static
+ * @param {meerkat.Plaintext} message Plaintext
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Plaintext.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.data = options.bytes === String ? "" : [];
+ if (message.data != null && message.hasOwnProperty("data"))
+ object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data;
+ return object;
+ };
+
+ /**
+ * Converts this Plaintext to JSON.
+ * @function toJSON
+ * @memberof meerkat.Plaintext
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Plaintext.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return Plaintext;
+ })();
+
+ meerkat.Mix2Proof = (function() {
+
+ /**
+ * Properties of a Mix2Proof.
+ * @memberof meerkat
+ * @interface IMix2Proof
+ * @property {meerkat.Mix2Proof.IFirstMessage} [firstMessage] Mix2Proof firstMessage
+ * @property {meerkat.Mix2Proof.IFinalMessage} [finalMessage] Mix2Proof finalMessage
+ * @property {meerkat.Mix2Proof.ILocation} [location] Mix2Proof location
+ */
+
+ /**
+ * Constructs a new Mix2Proof.
+ * @memberof meerkat
+ * @classdesc Represents a Mix2Proof.
+ * @constructor
+ * @param {meerkat.IMix2Proof=} [properties] Properties to set
+ */
+ function Mix2Proof(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Mix2Proof firstMessage.
+ * @member {(meerkat.Mix2Proof.IFirstMessage|null|undefined)}firstMessage
+ * @memberof meerkat.Mix2Proof
+ * @instance
+ */
+ Mix2Proof.prototype.firstMessage = null;
+
+ /**
+ * Mix2Proof finalMessage.
+ * @member {(meerkat.Mix2Proof.IFinalMessage|null|undefined)}finalMessage
+ * @memberof meerkat.Mix2Proof
+ * @instance
+ */
+ Mix2Proof.prototype.finalMessage = null;
+
+ /**
+ * Mix2Proof location.
+ * @member {(meerkat.Mix2Proof.ILocation|null|undefined)}location
+ * @memberof meerkat.Mix2Proof
+ * @instance
+ */
+ Mix2Proof.prototype.location = null;
+
+ /**
+ * Creates a new Mix2Proof instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {meerkat.IMix2Proof=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof} Mix2Proof instance
+ */
+ Mix2Proof.create = function create(properties) {
+ return new Mix2Proof(properties);
+ };
+
+ /**
+ * Encodes the specified Mix2Proof message. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {meerkat.IMix2Proof} message Mix2Proof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Mix2Proof.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.firstMessage != null && message.hasOwnProperty("firstMessage"))
+ $root.meerkat.Mix2Proof.FirstMessage.encode(message.firstMessage, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.finalMessage != null && message.hasOwnProperty("finalMessage"))
+ $root.meerkat.Mix2Proof.FinalMessage.encode(message.finalMessage, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.location != null && message.hasOwnProperty("location"))
+ $root.meerkat.Mix2Proof.Location.encode(message.location, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Mix2Proof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {meerkat.IMix2Proof} message Mix2Proof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Mix2Proof.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Mix2Proof message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof} Mix2Proof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Mix2Proof.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.decode(reader, reader.uint32());
+ break;
+ case 5:
+ message.location = $root.meerkat.Mix2Proof.Location.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Mix2Proof message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof} Mix2Proof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Mix2Proof.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Mix2Proof message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Mix2Proof.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.firstMessage != null && message.hasOwnProperty("firstMessage")) {
+ var error = $root.meerkat.Mix2Proof.FirstMessage.verify(message.firstMessage);
+ if (error)
+ return "firstMessage." + error;
+ }
+ if (message.finalMessage != null && message.hasOwnProperty("finalMessage")) {
+ error = $root.meerkat.Mix2Proof.FinalMessage.verify(message.finalMessage);
+ if (error)
+ return "finalMessage." + error;
+ }
+ if (message.location != null && message.hasOwnProperty("location")) {
+ error = $root.meerkat.Mix2Proof.Location.verify(message.location);
+ if (error)
+ return "location." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a Mix2Proof message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof} Mix2Proof
+ */
+ Mix2Proof.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof)
+ return object;
+ var message = new $root.meerkat.Mix2Proof();
+ if (object.firstMessage != null) {
+ if (typeof object.firstMessage !== "object")
+ throw TypeError(".meerkat.Mix2Proof.firstMessage: object expected");
+ message.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.fromObject(object.firstMessage);
+ }
+ if (object.finalMessage != null) {
+ if (typeof object.finalMessage !== "object")
+ throw TypeError(".meerkat.Mix2Proof.finalMessage: object expected");
+ message.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.fromObject(object.finalMessage);
+ }
+ if (object.location != null) {
+ if (typeof object.location !== "object")
+ throw TypeError(".meerkat.Mix2Proof.location: object expected");
+ message.location = $root.meerkat.Mix2Proof.Location.fromObject(object.location);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Mix2Proof message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof
+ * @static
+ * @param {meerkat.Mix2Proof} message Mix2Proof
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Mix2Proof.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.firstMessage = null;
+ object.finalMessage = null;
+ object.location = null;
+ }
+ if (message.firstMessage != null && message.hasOwnProperty("firstMessage"))
+ object.firstMessage = $root.meerkat.Mix2Proof.FirstMessage.toObject(message.firstMessage, options);
+ if (message.finalMessage != null && message.hasOwnProperty("finalMessage"))
+ object.finalMessage = $root.meerkat.Mix2Proof.FinalMessage.toObject(message.finalMessage, options);
+ if (message.location != null && message.hasOwnProperty("location"))
+ object.location = $root.meerkat.Mix2Proof.Location.toObject(message.location, options);
+ return object;
+ };
+
+ /**
+ * Converts this Mix2Proof to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Mix2Proof.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ Mix2Proof.DlogProof = (function() {
+
+ /**
+ * Properties of a DlogProof.
+ * @memberof meerkat.Mix2Proof
+ * @interface IDlogProof
+ */
+
+ /**
+ * Constructs a new DlogProof.
+ * @memberof meerkat.Mix2Proof
+ * @classdesc Represents a DlogProof.
+ * @constructor
+ * @param {meerkat.Mix2Proof.IDlogProof=} [properties] Properties to set
+ */
+ function DlogProof(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Creates a new DlogProof instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {meerkat.Mix2Proof.IDlogProof=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.DlogProof} DlogProof instance
+ */
+ DlogProof.create = function create(properties) {
+ return new DlogProof(properties);
+ };
+
+ /**
+ * Encodes the specified DlogProof message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {meerkat.Mix2Proof.IDlogProof} message DlogProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DlogProof.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified DlogProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {meerkat.Mix2Proof.IDlogProof} message DlogProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ DlogProof.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a DlogProof message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.DlogProof} DlogProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DlogProof.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a DlogProof message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.DlogProof} DlogProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ DlogProof.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a DlogProof message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ DlogProof.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ return null;
+ };
+
+ /**
+ * Creates a DlogProof message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.DlogProof} DlogProof
+ */
+ DlogProof.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.DlogProof)
+ return object;
+ return new $root.meerkat.Mix2Proof.DlogProof();
+ };
+
+ /**
+ * Creates a plain object from a DlogProof message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof} message DlogProof
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ DlogProof.toObject = function toObject() {
+ return {};
+ };
+
+ /**
+ * Converts this DlogProof to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ DlogProof.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ DlogProof.FirstMessage = (function() {
+
+ /**
+ * Properties of a FirstMessage.
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @interface IFirstMessage
+ * @property {meerkat.IGroupElement} [gr] FirstMessage gr
+ * @property {meerkat.IGroupElement} [hr] FirstMessage hr
+ */
+
+ /**
+ * Constructs a new FirstMessage.
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @classdesc Represents a FirstMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage=} [properties] Properties to set
+ */
+ function FirstMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FirstMessage gr.
+ * @member {(meerkat.IGroupElement|null|undefined)}gr
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.gr = null;
+
+ /**
+ * FirstMessage hr.
+ * @member {(meerkat.IGroupElement|null|undefined)}hr
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.hr = null;
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage instance
+ */
+ FirstMessage.create = function create(properties) {
+ return new FirstMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.gr != null && message.hasOwnProperty("gr"))
+ $root.meerkat.GroupElement.encode(message.gr, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.hr != null && message.hasOwnProperty("hr"))
+ $root.meerkat.GroupElement.encode(message.hr, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FirstMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof.FirstMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.gr = $root.meerkat.GroupElement.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.hr = $root.meerkat.GroupElement.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FirstMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FirstMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.gr != null && message.hasOwnProperty("gr")) {
+ var error = $root.meerkat.GroupElement.verify(message.gr);
+ if (error)
+ return "gr." + error;
+ }
+ if (message.hr != null && message.hasOwnProperty("hr")) {
+ error = $root.meerkat.GroupElement.verify(message.hr);
+ if (error)
+ return "hr." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.DlogProof.FirstMessage} FirstMessage
+ */
+ FirstMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.DlogProof.FirstMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.DlogProof.FirstMessage();
+ if (object.gr != null) {
+ if (typeof object.gr !== "object")
+ throw TypeError(".meerkat.Mix2Proof.DlogProof.FirstMessage.gr: object expected");
+ message.gr = $root.meerkat.GroupElement.fromObject(object.gr);
+ }
+ if (object.hr != null) {
+ if (typeof object.hr !== "object")
+ throw TypeError(".meerkat.Mix2Proof.DlogProof.FirstMessage.hr: object expected");
+ message.hr = $root.meerkat.GroupElement.fromObject(object.hr);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.FirstMessage} message FirstMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FirstMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.gr = null;
+ object.hr = null;
+ }
+ if (message.gr != null && message.hasOwnProperty("gr"))
+ object.gr = $root.meerkat.GroupElement.toObject(message.gr, options);
+ if (message.hr != null && message.hasOwnProperty("hr"))
+ object.hr = $root.meerkat.GroupElement.toObject(message.hr, options);
+ return object;
+ };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.DlogProof.FirstMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FirstMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FirstMessage;
+ })();
+
+ DlogProof.FinalMessage = (function() {
+
+ /**
+ * Properties of a FinalMessage.
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @interface IFinalMessage
+ * @property {meerkat.IBigInteger} [xcr] FinalMessage xcr
+ */
+
+ /**
+ * Constructs a new FinalMessage.
+ * @memberof meerkat.Mix2Proof.DlogProof
+ * @classdesc Represents a FinalMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage=} [properties] Properties to set
+ */
+ function FinalMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FinalMessage xcr.
+ * @member {(meerkat.IBigInteger|null|undefined)}xcr
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.xcr = null;
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage instance
+ */
+ FinalMessage.create = function create(properties) {
+ return new FinalMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.xcr != null && message.hasOwnProperty("xcr"))
+ $root.meerkat.BigInteger.encode(message.xcr, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.DlogProof.FinalMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.DlogProof.FinalMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.xcr = $root.meerkat.BigInteger.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FinalMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FinalMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.xcr != null && message.hasOwnProperty("xcr")) {
+ var error = $root.meerkat.BigInteger.verify(message.xcr);
+ if (error)
+ return "xcr." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.DlogProof.FinalMessage} FinalMessage
+ */
+ FinalMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.DlogProof.FinalMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.DlogProof.FinalMessage();
+ if (object.xcr != null) {
+ if (typeof object.xcr !== "object")
+ throw TypeError(".meerkat.Mix2Proof.DlogProof.FinalMessage.xcr: object expected");
+ message.xcr = $root.meerkat.BigInteger.fromObject(object.xcr);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.DlogProof.FinalMessage} message FinalMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FinalMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.xcr = null;
+ if (message.xcr != null && message.hasOwnProperty("xcr"))
+ object.xcr = $root.meerkat.BigInteger.toObject(message.xcr, options);
+ return object;
+ };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.DlogProof.FinalMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FinalMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FinalMessage;
+ })();
+
+ return DlogProof;
+ })();
+
+ Mix2Proof.AndProof = (function() {
+
+ /**
+ * Properties of an AndProof.
+ * @memberof meerkat.Mix2Proof
+ * @interface IAndProof
+ */
+
+ /**
+ * Constructs a new AndProof.
+ * @memberof meerkat.Mix2Proof
+ * @classdesc Represents an AndProof.
+ * @constructor
+ * @param {meerkat.Mix2Proof.IAndProof=} [properties] Properties to set
+ */
+ function AndProof(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Creates a new AndProof instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {meerkat.Mix2Proof.IAndProof=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.AndProof} AndProof instance
+ */
+ AndProof.create = function create(properties) {
+ return new AndProof(properties);
+ };
+
+ /**
+ * Encodes the specified AndProof message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {meerkat.Mix2Proof.IAndProof} message AndProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ AndProof.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified AndProof message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {meerkat.Mix2Proof.IAndProof} message AndProof message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ AndProof.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes an AndProof message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.AndProof} AndProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ AndProof.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes an AndProof message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.AndProof} AndProof
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ AndProof.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies an AndProof message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ AndProof.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ return null;
+ };
+
+ /**
+ * Creates an AndProof message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.AndProof} AndProof
+ */
+ AndProof.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.AndProof)
+ return object;
+ return new $root.meerkat.Mix2Proof.AndProof();
+ };
+
+ /**
+ * Creates a plain object from an AndProof message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof} message AndProof
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ AndProof.toObject = function toObject() {
+ return {};
+ };
+
+ /**
+ * Converts this AndProof to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ AndProof.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ AndProof.FirstMessage = (function() {
+
+ /**
+ * Properties of a FirstMessage.
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @interface IFirstMessage
+ * @property {meerkat.Mix2Proof.DlogProof.IFirstMessage} [clause0] FirstMessage clause0
+ * @property {meerkat.Mix2Proof.DlogProof.IFirstMessage} [clause1] FirstMessage clause1
+ */
+
+ /**
+ * Constructs a new FirstMessage.
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @classdesc Represents a FirstMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.AndProof.IFirstMessage=} [properties] Properties to set
+ */
+ function FirstMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FirstMessage clause0.
+ * @member {(meerkat.Mix2Proof.DlogProof.IFirstMessage|null|undefined)}clause0
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.clause0 = null;
+
+ /**
+ * FirstMessage clause1.
+ * @member {(meerkat.Mix2Proof.DlogProof.IFirstMessage|null|undefined)}clause1
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.clause1 = null;
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFirstMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage instance
+ */
+ FirstMessage.create = function create(properties) {
+ return new FirstMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ $root.meerkat.Mix2Proof.DlogProof.FirstMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ $root.meerkat.Mix2Proof.DlogProof.FirstMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FirstMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof.FirstMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FirstMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FirstMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.clause0 != null && message.hasOwnProperty("clause0")) {
+ var error = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.verify(message.clause0);
+ if (error)
+ return "clause0." + error;
+ }
+ if (message.clause1 != null && message.hasOwnProperty("clause1")) {
+ error = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.verify(message.clause1);
+ if (error)
+ return "clause1." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.AndProof.FirstMessage} FirstMessage
+ */
+ FirstMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.AndProof.FirstMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.AndProof.FirstMessage();
+ if (object.clause0 != null) {
+ if (typeof object.clause0 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.AndProof.FirstMessage.clause0: object expected");
+ message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.fromObject(object.clause0);
+ }
+ if (object.clause1 != null) {
+ if (typeof object.clause1 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.AndProof.FirstMessage.clause1: object expected");
+ message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.fromObject(object.clause1);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.FirstMessage} message FirstMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FirstMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.clause0 = null;
+ object.clause1 = null;
+ }
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ object.clause0 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.toObject(message.clause0, options);
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ object.clause1 = $root.meerkat.Mix2Proof.DlogProof.FirstMessage.toObject(message.clause1, options);
+ return object;
+ };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.AndProof.FirstMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FirstMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FirstMessage;
+ })();
+
+ AndProof.FinalMessage = (function() {
+
+ /**
+ * Properties of a FinalMessage.
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @interface IFinalMessage
+ * @property {meerkat.Mix2Proof.DlogProof.IFinalMessage} [clause0] FinalMessage clause0
+ * @property {meerkat.Mix2Proof.DlogProof.IFinalMessage} [clause1] FinalMessage clause1
+ */
+
+ /**
+ * Constructs a new FinalMessage.
+ * @memberof meerkat.Mix2Proof.AndProof
+ * @classdesc Represents a FinalMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.AndProof.IFinalMessage=} [properties] Properties to set
+ */
+ function FinalMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FinalMessage clause0.
+ * @member {(meerkat.Mix2Proof.DlogProof.IFinalMessage|null|undefined)}clause0
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.clause0 = null;
+
+ /**
+ * FinalMessage clause1.
+ * @member {(meerkat.Mix2Proof.DlogProof.IFinalMessage|null|undefined)}clause1
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.clause1 = null;
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFinalMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage instance
+ */
+ FinalMessage.create = function create(properties) {
+ return new FinalMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ $root.meerkat.Mix2Proof.DlogProof.FinalMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ $root.meerkat.Mix2Proof.DlogProof.FinalMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.AndProof.FinalMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.AndProof.FinalMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FinalMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FinalMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.clause0 != null && message.hasOwnProperty("clause0")) {
+ var error = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.verify(message.clause0);
+ if (error)
+ return "clause0." + error;
+ }
+ if (message.clause1 != null && message.hasOwnProperty("clause1")) {
+ error = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.verify(message.clause1);
+ if (error)
+ return "clause1." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.AndProof.FinalMessage} FinalMessage
+ */
+ FinalMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.AndProof.FinalMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.AndProof.FinalMessage();
+ if (object.clause0 != null) {
+ if (typeof object.clause0 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.AndProof.FinalMessage.clause0: object expected");
+ message.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.fromObject(object.clause0);
+ }
+ if (object.clause1 != null) {
+ if (typeof object.clause1 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.AndProof.FinalMessage.clause1: object expected");
+ message.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.fromObject(object.clause1);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.AndProof.FinalMessage} message FinalMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FinalMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.clause0 = null;
+ object.clause1 = null;
+ }
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ object.clause0 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.toObject(message.clause0, options);
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ object.clause1 = $root.meerkat.Mix2Proof.DlogProof.FinalMessage.toObject(message.clause1, options);
+ return object;
+ };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.AndProof.FinalMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FinalMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FinalMessage;
+ })();
+
+ return AndProof;
+ })();
+
+ Mix2Proof.FirstMessage = (function() {
+
+ /**
+ * Properties of a FirstMessage.
+ * @memberof meerkat.Mix2Proof
+ * @interface IFirstMessage
+ * @property {meerkat.Mix2Proof.AndProof.IFirstMessage} [clause0] FirstMessage clause0
+ * @property {meerkat.Mix2Proof.AndProof.IFirstMessage} [clause1] FirstMessage clause1
+ */
+
+ /**
+ * Constructs a new FirstMessage.
+ * @memberof meerkat.Mix2Proof
+ * @classdesc Represents a FirstMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.IFirstMessage=} [properties] Properties to set
+ */
+ function FirstMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FirstMessage clause0.
+ * @member {(meerkat.Mix2Proof.AndProof.IFirstMessage|null|undefined)}clause0
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.clause0 = null;
+
+ /**
+ * FirstMessage clause1.
+ * @member {(meerkat.Mix2Proof.AndProof.IFirstMessage|null|undefined)}clause1
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @instance
+ */
+ FirstMessage.prototype.clause1 = null;
+
+ /**
+ * Creates a new FirstMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFirstMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage instance
+ */
+ FirstMessage.create = function create(properties) {
+ return new FirstMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FirstMessage message. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ $root.meerkat.Mix2Proof.AndProof.FirstMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ $root.meerkat.Mix2Proof.AndProof.FirstMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FirstMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FirstMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFirstMessage} message FirstMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FirstMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.FirstMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FirstMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FirstMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FirstMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FirstMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.clause0 != null && message.hasOwnProperty("clause0")) {
+ var error = $root.meerkat.Mix2Proof.AndProof.FirstMessage.verify(message.clause0);
+ if (error)
+ return "clause0." + error;
+ }
+ if (message.clause1 != null && message.hasOwnProperty("clause1")) {
+ error = $root.meerkat.Mix2Proof.AndProof.FirstMessage.verify(message.clause1);
+ if (error)
+ return "clause1." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FirstMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.FirstMessage} FirstMessage
+ */
+ FirstMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.FirstMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.FirstMessage();
+ if (object.clause0 != null) {
+ if (typeof object.clause0 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.FirstMessage.clause0: object expected");
+ message.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.fromObject(object.clause0);
+ }
+ if (object.clause1 != null) {
+ if (typeof object.clause1 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.FirstMessage.clause1: object expected");
+ message.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.fromObject(object.clause1);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FirstMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @static
+ * @param {meerkat.Mix2Proof.FirstMessage} message FirstMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FirstMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.clause0 = null;
+ object.clause1 = null;
+ }
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ object.clause0 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.toObject(message.clause0, options);
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ object.clause1 = $root.meerkat.Mix2Proof.AndProof.FirstMessage.toObject(message.clause1, options);
+ return object;
+ };
+
+ /**
+ * Converts this FirstMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.FirstMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FirstMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FirstMessage;
+ })();
+
+ Mix2Proof.FinalMessage = (function() {
+
+ /**
+ * Properties of a FinalMessage.
+ * @memberof meerkat.Mix2Proof
+ * @interface IFinalMessage
+ * @property {meerkat.Mix2Proof.AndProof.IFinalMessage} [clause0] FinalMessage clause0
+ * @property {meerkat.Mix2Proof.AndProof.IFinalMessage} [clause1] FinalMessage clause1
+ * @property {meerkat.IBigInteger} [c0] FinalMessage c0
+ */
+
+ /**
+ * Constructs a new FinalMessage.
+ * @memberof meerkat.Mix2Proof
+ * @classdesc Represents a FinalMessage.
+ * @constructor
+ * @param {meerkat.Mix2Proof.IFinalMessage=} [properties] Properties to set
+ */
+ function FinalMessage(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * FinalMessage clause0.
+ * @member {(meerkat.Mix2Proof.AndProof.IFinalMessage|null|undefined)}clause0
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.clause0 = null;
+
+ /**
+ * FinalMessage clause1.
+ * @member {(meerkat.Mix2Proof.AndProof.IFinalMessage|null|undefined)}clause1
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.clause1 = null;
+
+ /**
+ * FinalMessage c0.
+ * @member {(meerkat.IBigInteger|null|undefined)}c0
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @instance
+ */
+ FinalMessage.prototype.c0 = null;
+
+ /**
+ * Creates a new FinalMessage instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFinalMessage=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage instance
+ */
+ FinalMessage.create = function create(properties) {
+ return new FinalMessage(properties);
+ };
+
+ /**
+ * Encodes the specified FinalMessage message. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ $root.meerkat.Mix2Proof.AndProof.FinalMessage.encode(message.clause0, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ $root.meerkat.Mix2Proof.AndProof.FinalMessage.encode(message.clause1, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.c0 != null && message.hasOwnProperty("c0"))
+ $root.meerkat.BigInteger.encode(message.c0, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified FinalMessage message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.FinalMessage.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.IFinalMessage} message FinalMessage message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ FinalMessage.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.FinalMessage();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.decode(reader, reader.uint32());
+ break;
+ case 2:
+ message.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.decode(reader, reader.uint32());
+ break;
+ case 3:
+ message.c0 = $root.meerkat.BigInteger.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a FinalMessage message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ FinalMessage.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a FinalMessage message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ FinalMessage.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.clause0 != null && message.hasOwnProperty("clause0")) {
+ var error = $root.meerkat.Mix2Proof.AndProof.FinalMessage.verify(message.clause0);
+ if (error)
+ return "clause0." + error;
+ }
+ if (message.clause1 != null && message.hasOwnProperty("clause1")) {
+ error = $root.meerkat.Mix2Proof.AndProof.FinalMessage.verify(message.clause1);
+ if (error)
+ return "clause1." + error;
+ }
+ if (message.c0 != null && message.hasOwnProperty("c0")) {
+ error = $root.meerkat.BigInteger.verify(message.c0);
+ if (error)
+ return "c0." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a FinalMessage message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.FinalMessage} FinalMessage
+ */
+ FinalMessage.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.FinalMessage)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.FinalMessage();
+ if (object.clause0 != null) {
+ if (typeof object.clause0 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.FinalMessage.clause0: object expected");
+ message.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.fromObject(object.clause0);
+ }
+ if (object.clause1 != null) {
+ if (typeof object.clause1 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.FinalMessage.clause1: object expected");
+ message.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.fromObject(object.clause1);
+ }
+ if (object.c0 != null) {
+ if (typeof object.c0 !== "object")
+ throw TypeError(".meerkat.Mix2Proof.FinalMessage.c0: object expected");
+ message.c0 = $root.meerkat.BigInteger.fromObject(object.c0);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a FinalMessage message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @static
+ * @param {meerkat.Mix2Proof.FinalMessage} message FinalMessage
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ FinalMessage.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.clause0 = null;
+ object.clause1 = null;
+ object.c0 = null;
+ }
+ if (message.clause0 != null && message.hasOwnProperty("clause0"))
+ object.clause0 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.toObject(message.clause0, options);
+ if (message.clause1 != null && message.hasOwnProperty("clause1"))
+ object.clause1 = $root.meerkat.Mix2Proof.AndProof.FinalMessage.toObject(message.clause1, options);
+ if (message.c0 != null && message.hasOwnProperty("c0"))
+ object.c0 = $root.meerkat.BigInteger.toObject(message.c0, options);
+ return object;
+ };
+
+ /**
+ * Converts this FinalMessage to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.FinalMessage
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ FinalMessage.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return FinalMessage;
+ })();
+
+ Mix2Proof.Location = (function() {
+
+ /**
+ * Properties of a Location.
+ * @memberof meerkat.Mix2Proof
+ * @interface ILocation
+ * @property {number} [layer] Location layer
+ * @property {number} [switchIdx] Location switchIdx
+ * @property {number} [out0] Location out0
+ * @property {number} [out1] Location out1
+ */
+
+ /**
+ * Constructs a new Location.
+ * @memberof meerkat.Mix2Proof
+ * @classdesc Represents a Location.
+ * @constructor
+ * @param {meerkat.Mix2Proof.ILocation=} [properties] Properties to set
+ */
+ function Location(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * Location layer.
+ * @member {number}layer
+ * @memberof meerkat.Mix2Proof.Location
+ * @instance
+ */
+ Location.prototype.layer = 0;
+
+ /**
+ * Location switchIdx.
+ * @member {number}switchIdx
+ * @memberof meerkat.Mix2Proof.Location
+ * @instance
+ */
+ Location.prototype.switchIdx = 0;
+
+ /**
+ * Location out0.
+ * @member {number}out0
+ * @memberof meerkat.Mix2Proof.Location
+ * @instance
+ */
+ Location.prototype.out0 = 0;
+
+ /**
+ * Location out1.
+ * @member {number}out1
+ * @memberof meerkat.Mix2Proof.Location
+ * @instance
+ */
+ Location.prototype.out1 = 0;
+
+ /**
+ * Creates a new Location instance using the specified properties.
+ * @function create
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {meerkat.Mix2Proof.ILocation=} [properties] Properties to set
+ * @returns {meerkat.Mix2Proof.Location} Location instance
+ */
+ Location.create = function create(properties) {
+ return new Location(properties);
+ };
+
+ /**
+ * Encodes the specified Location message. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {meerkat.Mix2Proof.ILocation} message Location message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Location.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.layer != null && message.hasOwnProperty("layer"))
+ writer.uint32(/* id 1, wireType 0 =*/8).int32(message.layer);
+ if (message.switchIdx != null && message.hasOwnProperty("switchIdx"))
+ writer.uint32(/* id 2, wireType 0 =*/16).int32(message.switchIdx);
+ if (message.out0 != null && message.hasOwnProperty("out0"))
+ writer.uint32(/* id 3, wireType 0 =*/24).int32(message.out0);
+ if (message.out1 != null && message.hasOwnProperty("out1"))
+ writer.uint32(/* id 4, wireType 0 =*/32).int32(message.out1);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified Location message, length delimited. Does not implicitly {@link meerkat.Mix2Proof.Location.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {meerkat.Mix2Proof.ILocation} message Location message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ Location.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a Location message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.Mix2Proof.Location} Location
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Location.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.Mix2Proof.Location();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.layer = reader.int32();
+ break;
+ case 2:
+ message.switchIdx = reader.int32();
+ break;
+ case 3:
+ message.out0 = reader.int32();
+ break;
+ case 4:
+ message.out1 = reader.int32();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a Location message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.Mix2Proof.Location} Location
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ Location.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a Location message.
+ * @function verify
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ Location.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.layer != null && message.hasOwnProperty("layer"))
+ if (!$util.isInteger(message.layer))
+ return "layer: integer expected";
+ if (message.switchIdx != null && message.hasOwnProperty("switchIdx"))
+ if (!$util.isInteger(message.switchIdx))
+ return "switchIdx: integer expected";
+ if (message.out0 != null && message.hasOwnProperty("out0"))
+ if (!$util.isInteger(message.out0))
+ return "out0: integer expected";
+ if (message.out1 != null && message.hasOwnProperty("out1"))
+ if (!$util.isInteger(message.out1))
+ return "out1: integer expected";
+ return null;
+ };
+
+ /**
+ * Creates a Location message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.Mix2Proof.Location} Location
+ */
+ Location.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.Mix2Proof.Location)
+ return object;
+ var message = new $root.meerkat.Mix2Proof.Location();
+ if (object.layer != null)
+ message.layer = object.layer | 0;
+ if (object.switchIdx != null)
+ message.switchIdx = object.switchIdx | 0;
+ if (object.out0 != null)
+ message.out0 = object.out0 | 0;
+ if (object.out1 != null)
+ message.out1 = object.out1 | 0;
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a Location message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.Mix2Proof.Location
+ * @static
+ * @param {meerkat.Mix2Proof.Location} message Location
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ Location.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.layer = 0;
+ object.switchIdx = 0;
+ object.out0 = 0;
+ object.out1 = 0;
+ }
+ if (message.layer != null && message.hasOwnProperty("layer"))
+ object.layer = message.layer;
+ if (message.switchIdx != null && message.hasOwnProperty("switchIdx"))
+ object.switchIdx = message.switchIdx;
+ if (message.out0 != null && message.hasOwnProperty("out0"))
+ object.out0 = message.out0;
+ if (message.out1 != null && message.hasOwnProperty("out1"))
+ object.out1 = message.out1;
+ return object;
+ };
+
+ /**
+ * Converts this Location to JSON.
+ * @function toJSON
+ * @memberof meerkat.Mix2Proof.Location
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ Location.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return Location;
+ })();
+
+ return Mix2Proof;
+ })();
+
+ meerkat.ConnectionServerData = (function() {
+
+ /**
+ * Properties of a ConnectionServerData.
+ * @memberof meerkat
+ * @interface IConnectionServerData
+ * @property {string} [serverUrl] ConnectionServerData serverUrl
+ * @property {number|Long} [nonce] ConnectionServerData nonce
+ */
+
+ /**
+ * Constructs a new ConnectionServerData.
+ * @memberof meerkat
+ * @classdesc Represents a ConnectionServerData.
+ * @constructor
+ * @param {meerkat.IConnectionServerData=} [properties] Properties to set
+ */
+ function ConnectionServerData(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ConnectionServerData serverUrl.
+ * @member {string}serverUrl
+ * @memberof meerkat.ConnectionServerData
+ * @instance
+ */
+ ConnectionServerData.prototype.serverUrl = "";
+
+ /**
+ * ConnectionServerData nonce.
+ * @member {number|Long}nonce
+ * @memberof meerkat.ConnectionServerData
+ * @instance
+ */
+ ConnectionServerData.prototype.nonce = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+
+ /**
+ * Creates a new ConnectionServerData instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {meerkat.IConnectionServerData=} [properties] Properties to set
+ * @returns {meerkat.ConnectionServerData} ConnectionServerData instance
+ */
+ ConnectionServerData.create = function create(properties) {
+ return new ConnectionServerData(properties);
+ };
+
+ /**
+ * Encodes the specified ConnectionServerData message. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {meerkat.IConnectionServerData} message ConnectionServerData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ConnectionServerData.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.serverUrl != null && message.hasOwnProperty("serverUrl"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.serverUrl);
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ writer.uint32(/* id 2, wireType 0 =*/16).uint64(message.nonce);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ConnectionServerData message, length delimited. Does not implicitly {@link meerkat.ConnectionServerData.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {meerkat.IConnectionServerData} message ConnectionServerData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ConnectionServerData.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ConnectionServerData message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ConnectionServerData} ConnectionServerData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ConnectionServerData.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ConnectionServerData();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.serverUrl = reader.string();
+ break;
+ case 2:
+ message.nonce = reader.uint64();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ConnectionServerData message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ConnectionServerData} ConnectionServerData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ConnectionServerData.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ConnectionServerData message.
+ * @function verify
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ConnectionServerData.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.serverUrl != null && message.hasOwnProperty("serverUrl"))
+ if (!$util.isString(message.serverUrl))
+ return "serverUrl: string expected";
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ if (!$util.isInteger(message.nonce) && !(message.nonce && $util.isInteger(message.nonce.low) && $util.isInteger(message.nonce.high)))
+ return "nonce: integer|Long expected";
+ return null;
+ };
+
+ /**
+ * Creates a ConnectionServerData message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ConnectionServerData} ConnectionServerData
+ */
+ ConnectionServerData.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ConnectionServerData)
+ return object;
+ var message = new $root.meerkat.ConnectionServerData();
+ if (object.serverUrl != null)
+ message.serverUrl = String(object.serverUrl);
+ if (object.nonce != null)
+ if ($util.Long)
+ (message.nonce = $util.Long.fromValue(object.nonce)).unsigned = true;
+ else if (typeof object.nonce === "string")
+ message.nonce = parseInt(object.nonce, 10);
+ else if (typeof object.nonce === "number")
+ message.nonce = object.nonce;
+ else if (typeof object.nonce === "object")
+ message.nonce = new $util.LongBits(object.nonce.low >>> 0, object.nonce.high >>> 0).toNumber(true);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ConnectionServerData message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ConnectionServerData
+ * @static
+ * @param {meerkat.ConnectionServerData} message ConnectionServerData
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ConnectionServerData.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.serverUrl = "";
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.nonce = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.nonce = options.longs === String ? "0" : 0;
+ }
+ if (message.serverUrl != null && message.hasOwnProperty("serverUrl"))
+ object.serverUrl = message.serverUrl;
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ if (typeof message.nonce === "number")
+ object.nonce = options.longs === String ? String(message.nonce) : message.nonce;
+ else
+ object.nonce = options.longs === String ? $util.Long.prototype.toString.call(message.nonce) : options.longs === Number ? new $util.LongBits(message.nonce.low >>> 0, message.nonce.high >>> 0).toNumber(true) : message.nonce;
+ return object;
+ };
+
+ /**
+ * Converts this ConnectionServerData to JSON.
+ * @function toJSON
+ * @memberof meerkat.ConnectionServerData
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ConnectionServerData.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ConnectionServerData;
+ })();
+
+ meerkat.ConnectionClientData = (function() {
+
+ /**
+ * Properties of a ConnectionClientData.
+ * @memberof meerkat
+ * @interface IConnectionClientData
+ * @property {Uint8Array} [scannerId] ConnectionClientData scannerId
+ * @property {meerkat.ISignatureVerificationKey} [scannerPK] ConnectionClientData scannerPK
+ * @property {number|Long} [nonce] ConnectionClientData nonce
+ */
+
+ /**
+ * Constructs a new ConnectionClientData.
+ * @memberof meerkat
+ * @classdesc Represents a ConnectionClientData.
+ * @constructor
+ * @param {meerkat.IConnectionClientData=} [properties] Properties to set
+ */
+ function ConnectionClientData(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ConnectionClientData scannerId.
+ * @member {Uint8Array}scannerId
+ * @memberof meerkat.ConnectionClientData
+ * @instance
+ */
+ ConnectionClientData.prototype.scannerId = $util.newBuffer([]);
+
+ /**
+ * ConnectionClientData scannerPK.
+ * @member {(meerkat.ISignatureVerificationKey|null|undefined)}scannerPK
+ * @memberof meerkat.ConnectionClientData
+ * @instance
+ */
+ ConnectionClientData.prototype.scannerPK = null;
+
+ /**
+ * ConnectionClientData nonce.
+ * @member {number|Long}nonce
+ * @memberof meerkat.ConnectionClientData
+ * @instance
+ */
+ ConnectionClientData.prototype.nonce = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * ConnectionClientData id.
+ * @member {string|undefined} id
+ * @memberof meerkat.ConnectionClientData
+ * @instance
+ */
+ Object.defineProperty(ConnectionClientData.prototype, "id", {
+ get: $util.oneOfGetter($oneOfFields = ["scannerId", "scannerPK"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new ConnectionClientData instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {meerkat.IConnectionClientData=} [properties] Properties to set
+ * @returns {meerkat.ConnectionClientData} ConnectionClientData instance
+ */
+ ConnectionClientData.create = function create(properties) {
+ return new ConnectionClientData(properties);
+ };
+
+ /**
+ * Encodes the specified ConnectionClientData message. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {meerkat.IConnectionClientData} message ConnectionClientData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ConnectionClientData.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.scannerId != null && message.hasOwnProperty("scannerId"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.scannerId);
+ if (message.scannerPK != null && message.hasOwnProperty("scannerPK"))
+ $root.meerkat.SignatureVerificationKey.encode(message.scannerPK, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.nonce);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ConnectionClientData message, length delimited. Does not implicitly {@link meerkat.ConnectionClientData.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {meerkat.IConnectionClientData} message ConnectionClientData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ConnectionClientData.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ConnectionClientData message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ConnectionClientData} ConnectionClientData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ConnectionClientData.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ConnectionClientData();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.scannerId = reader.bytes();
+ break;
+ case 2:
+ message.scannerPK = $root.meerkat.SignatureVerificationKey.decode(reader, reader.uint32());
+ break;
+ case 3:
+ message.nonce = reader.uint64();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ConnectionClientData message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ConnectionClientData} ConnectionClientData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ConnectionClientData.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ConnectionClientData message.
+ * @function verify
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ConnectionClientData.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ var properties = {};
+ if (message.scannerId != null && message.hasOwnProperty("scannerId")) {
+ properties.id = 1;
+ if (!(message.scannerId && typeof message.scannerId.length === "number" || $util.isString(message.scannerId)))
+ return "scannerId: buffer expected";
+ }
+ if (message.scannerPK != null && message.hasOwnProperty("scannerPK")) {
+ if (properties.id === 1)
+ return "id: multiple values";
+ properties.id = 1;
+ var error = $root.meerkat.SignatureVerificationKey.verify(message.scannerPK);
+ if (error)
+ return "scannerPK." + error;
+ }
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ if (!$util.isInteger(message.nonce) && !(message.nonce && $util.isInteger(message.nonce.low) && $util.isInteger(message.nonce.high)))
+ return "nonce: integer|Long expected";
+ return null;
+ };
+
+ /**
+ * Creates a ConnectionClientData message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ConnectionClientData} ConnectionClientData
+ */
+ ConnectionClientData.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ConnectionClientData)
+ return object;
+ var message = new $root.meerkat.ConnectionClientData();
+ if (object.scannerId != null)
+ if (typeof object.scannerId === "string")
+ $util.base64.decode(object.scannerId, message.scannerId = $util.newBuffer($util.base64.length(object.scannerId)), 0);
+ else if (object.scannerId.length)
+ message.scannerId = object.scannerId;
+ if (object.scannerPK != null) {
+ if (typeof object.scannerPK !== "object")
+ throw TypeError(".meerkat.ConnectionClientData.scannerPK: object expected");
+ message.scannerPK = $root.meerkat.SignatureVerificationKey.fromObject(object.scannerPK);
+ }
+ if (object.nonce != null)
+ if ($util.Long)
+ (message.nonce = $util.Long.fromValue(object.nonce)).unsigned = true;
+ else if (typeof object.nonce === "string")
+ message.nonce = parseInt(object.nonce, 10);
+ else if (typeof object.nonce === "number")
+ message.nonce = object.nonce;
+ else if (typeof object.nonce === "object")
+ message.nonce = new $util.LongBits(object.nonce.low >>> 0, object.nonce.high >>> 0).toNumber(true);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ConnectionClientData message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ConnectionClientData
+ * @static
+ * @param {meerkat.ConnectionClientData} message ConnectionClientData
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ConnectionClientData.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ if ($util.Long) {
+ var long = new $util.Long(0, 0, true);
+ object.nonce = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+ } else
+ object.nonce = options.longs === String ? "0" : 0;
+ if (message.scannerId != null && message.hasOwnProperty("scannerId")) {
+ object.scannerId = options.bytes === String ? $util.base64.encode(message.scannerId, 0, message.scannerId.length) : options.bytes === Array ? Array.prototype.slice.call(message.scannerId) : message.scannerId;
+ if (options.oneofs)
+ object.id = "scannerId";
+ }
+ if (message.scannerPK != null && message.hasOwnProperty("scannerPK")) {
+ object.scannerPK = $root.meerkat.SignatureVerificationKey.toObject(message.scannerPK, options);
+ if (options.oneofs)
+ object.id = "scannerPK";
+ }
+ if (message.nonce != null && message.hasOwnProperty("nonce"))
+ if (typeof message.nonce === "number")
+ object.nonce = options.longs === String ? String(message.nonce) : message.nonce;
+ else
+ object.nonce = options.longs === String ? $util.Long.prototype.toString.call(message.nonce) : options.longs === Number ? new $util.LongBits(message.nonce.low >>> 0, message.nonce.high >>> 0).toNumber(true) : message.nonce;
+ return object;
+ };
+
+ /**
+ * Converts this ConnectionClientData to JSON.
+ * @function toJSON
+ * @memberof meerkat.ConnectionClientData
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ConnectionClientData.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ConnectionClientData;
+ })();
+
+ meerkat.ScannedBallot = (function() {
+
+ /**
+ * Properties of a ScannedBallot.
+ * @memberof meerkat
+ * @interface IScannedBallot
+ * @property {Uint8Array} [channel] ScannedBallot channel
+ * @property {meerkat.ISignedEncryptedBallot} [signedEncryptedBallot] ScannedBallot signedEncryptedBallot
+ */
+
+ /**
+ * Constructs a new ScannedBallot.
+ * @memberof meerkat
+ * @classdesc Represents a ScannedBallot.
+ * @constructor
+ * @param {meerkat.IScannedBallot=} [properties] Properties to set
+ */
+ function ScannedBallot(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ScannedBallot channel.
+ * @member {Uint8Array}channel
+ * @memberof meerkat.ScannedBallot
+ * @instance
+ */
+ ScannedBallot.prototype.channel = $util.newBuffer([]);
+
+ /**
+ * ScannedBallot signedEncryptedBallot.
+ * @member {(meerkat.ISignedEncryptedBallot|null|undefined)}signedEncryptedBallot
+ * @memberof meerkat.ScannedBallot
+ * @instance
+ */
+ ScannedBallot.prototype.signedEncryptedBallot = null;
+
+ /**
+ * Creates a new ScannedBallot instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {meerkat.IScannedBallot=} [properties] Properties to set
+ * @returns {meerkat.ScannedBallot} ScannedBallot instance
+ */
+ ScannedBallot.create = function create(properties) {
+ return new ScannedBallot(properties);
+ };
+
+ /**
+ * Encodes the specified ScannedBallot message. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {meerkat.IScannedBallot} message ScannedBallot message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScannedBallot.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.channel != null && message.hasOwnProperty("channel"))
+ writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.channel);
+ if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot"))
+ $root.meerkat.SignedEncryptedBallot.encode(message.signedEncryptedBallot, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ScannedBallot message, length delimited. Does not implicitly {@link meerkat.ScannedBallot.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {meerkat.IScannedBallot} message ScannedBallot message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScannedBallot.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ScannedBallot message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ScannedBallot} ScannedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScannedBallot.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScannedBallot();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.channel = reader.bytes();
+ break;
+ case 2:
+ message.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.decode(reader, reader.uint32());
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ScannedBallot message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ScannedBallot} ScannedBallot
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScannedBallot.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ScannedBallot message.
+ * @function verify
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ScannedBallot.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.channel != null && message.hasOwnProperty("channel"))
+ if (!(message.channel && typeof message.channel.length === "number" || $util.isString(message.channel)))
+ return "channel: buffer expected";
+ if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot")) {
+ var error = $root.meerkat.SignedEncryptedBallot.verify(message.signedEncryptedBallot);
+ if (error)
+ return "signedEncryptedBallot." + error;
+ }
+ return null;
+ };
+
+ /**
+ * Creates a ScannedBallot message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ScannedBallot} ScannedBallot
+ */
+ ScannedBallot.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ScannedBallot)
+ return object;
+ var message = new $root.meerkat.ScannedBallot();
+ if (object.channel != null)
+ if (typeof object.channel === "string")
+ $util.base64.decode(object.channel, message.channel = $util.newBuffer($util.base64.length(object.channel)), 0);
+ else if (object.channel.length)
+ message.channel = object.channel;
+ if (object.signedEncryptedBallot != null) {
+ if (typeof object.signedEncryptedBallot !== "object")
+ throw TypeError(".meerkat.ScannedBallot.signedEncryptedBallot: object expected");
+ message.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.fromObject(object.signedEncryptedBallot);
+ }
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ScannedBallot message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ScannedBallot
+ * @static
+ * @param {meerkat.ScannedBallot} message ScannedBallot
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ScannedBallot.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults) {
+ object.channel = options.bytes === String ? "" : [];
+ object.signedEncryptedBallot = null;
+ }
+ if (message.channel != null && message.hasOwnProperty("channel"))
+ object.channel = options.bytes === String ? $util.base64.encode(message.channel, 0, message.channel.length) : options.bytes === Array ? Array.prototype.slice.call(message.channel) : message.channel;
+ if (message.signedEncryptedBallot != null && message.hasOwnProperty("signedEncryptedBallot"))
+ object.signedEncryptedBallot = $root.meerkat.SignedEncryptedBallot.toObject(message.signedEncryptedBallot, options);
+ return object;
+ };
+
+ /**
+ * Converts this ScannedBallot to JSON.
+ * @function toJSON
+ * @memberof meerkat.ScannedBallot
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ScannedBallot.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ScannedBallot;
+ })();
+
+ meerkat.ScanError = (function() {
+
+ /**
+ * Properties of a ScanError.
+ * @memberof meerkat
+ * @interface IScanError
+ * @property {string} [msg] ScanError msg
+ */
+
+ /**
+ * Constructs a new ScanError.
+ * @memberof meerkat
+ * @classdesc Represents a ScanError.
+ * @constructor
+ * @param {meerkat.IScanError=} [properties] Properties to set
+ */
+ function ScanError(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ScanError msg.
+ * @member {string}msg
+ * @memberof meerkat.ScanError
+ * @instance
+ */
+ ScanError.prototype.msg = "";
+
+ /**
+ * Creates a new ScanError instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {meerkat.IScanError=} [properties] Properties to set
+ * @returns {meerkat.ScanError} ScanError instance
+ */
+ ScanError.create = function create(properties) {
+ return new ScanError(properties);
+ };
+
+ /**
+ * Encodes the specified ScanError message. Does not implicitly {@link meerkat.ScanError.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {meerkat.IScanError} message ScanError message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScanError.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.msg != null && message.hasOwnProperty("msg"))
+ writer.uint32(/* id 1, wireType 2 =*/10).string(message.msg);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ScanError message, length delimited. Does not implicitly {@link meerkat.ScanError.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {meerkat.IScanError} message ScanError message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScanError.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ScanError message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ScanError} ScanError
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScanError.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScanError();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 1:
+ message.msg = reader.string();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ScanError message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ScanError} ScanError
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScanError.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ScanError message.
+ * @function verify
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {Object.} message Plain object to verify
+ * @returns {string|null} `null` if valid, otherwise the reason why it is not
+ */
+ ScanError.verify = function verify(message) {
+ if (typeof message !== "object" || message === null)
+ return "object expected";
+ if (message.msg != null && message.hasOwnProperty("msg"))
+ if (!$util.isString(message.msg))
+ return "msg: string expected";
+ return null;
+ };
+
+ /**
+ * Creates a ScanError message from a plain object. Also converts values to their respective internal types.
+ * @function fromObject
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {Object.} object Plain object
+ * @returns {meerkat.ScanError} ScanError
+ */
+ ScanError.fromObject = function fromObject(object) {
+ if (object instanceof $root.meerkat.ScanError)
+ return object;
+ var message = new $root.meerkat.ScanError();
+ if (object.msg != null)
+ message.msg = String(object.msg);
+ return message;
+ };
+
+ /**
+ * Creates a plain object from a ScanError message. Also converts values to other types if specified.
+ * @function toObject
+ * @memberof meerkat.ScanError
+ * @static
+ * @param {meerkat.ScanError} message ScanError
+ * @param {$protobuf.IConversionOptions} [options] Conversion options
+ * @returns {Object.} Plain object
+ */
+ ScanError.toObject = function toObject(message, options) {
+ if (!options)
+ options = {};
+ var object = {};
+ if (options.defaults)
+ object.msg = "";
+ if (message.msg != null && message.hasOwnProperty("msg"))
+ object.msg = message.msg;
+ return object;
+ };
+
+ /**
+ * Converts this ScanError to JSON.
+ * @function toJSON
+ * @memberof meerkat.ScanError
+ * @instance
+ * @returns {Object.} JSON object
+ */
+ ScanError.prototype.toJSON = function toJSON() {
+ return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+ };
+
+ return ScanError;
+ })();
+
+ meerkat.ScannedData = (function() {
+
+ /**
+ * Properties of a ScannedData.
+ * @memberof meerkat
+ * @interface IScannedData
+ * @property {meerkat.IScannedBallot} [ballot] ScannedData ballot
+ * @property {meerkat.IScanError} [error] ScannedData error
+ * @property {number|Long} [serial] ScannedData serial
+ * @property {Uint8Array} [scannerId] ScannedData scannerId
+ */
+
+ /**
+ * Constructs a new ScannedData.
+ * @memberof meerkat
+ * @classdesc Represents a ScannedData.
+ * @constructor
+ * @param {meerkat.IScannedData=} [properties] Properties to set
+ */
+ function ScannedData(properties) {
+ if (properties)
+ for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+ if (properties[keys[i]] != null)
+ this[keys[i]] = properties[keys[i]];
+ }
+
+ /**
+ * ScannedData ballot.
+ * @member {(meerkat.IScannedBallot|null|undefined)}ballot
+ * @memberof meerkat.ScannedData
+ * @instance
+ */
+ ScannedData.prototype.ballot = null;
+
+ /**
+ * ScannedData error.
+ * @member {(meerkat.IScanError|null|undefined)}error
+ * @memberof meerkat.ScannedData
+ * @instance
+ */
+ ScannedData.prototype.error = null;
+
+ /**
+ * ScannedData serial.
+ * @member {number|Long}serial
+ * @memberof meerkat.ScannedData
+ * @instance
+ */
+ ScannedData.prototype.serial = $util.Long ? $util.Long.fromBits(0,0,true) : 0;
+
+ /**
+ * ScannedData scannerId.
+ * @member {Uint8Array}scannerId
+ * @memberof meerkat.ScannedData
+ * @instance
+ */
+ ScannedData.prototype.scannerId = $util.newBuffer([]);
+
+ // OneOf field names bound to virtual getters and setters
+ var $oneOfFields;
+
+ /**
+ * ScannedData data.
+ * @member {string|undefined} data
+ * @memberof meerkat.ScannedData
+ * @instance
+ */
+ Object.defineProperty(ScannedData.prototype, "data", {
+ get: $util.oneOfGetter($oneOfFields = ["ballot", "error"]),
+ set: $util.oneOfSetter($oneOfFields)
+ });
+
+ /**
+ * Creates a new ScannedData instance using the specified properties.
+ * @function create
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {meerkat.IScannedData=} [properties] Properties to set
+ * @returns {meerkat.ScannedData} ScannedData instance
+ */
+ ScannedData.create = function create(properties) {
+ return new ScannedData(properties);
+ };
+
+ /**
+ * Encodes the specified ScannedData message. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages.
+ * @function encode
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {meerkat.IScannedData} message ScannedData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScannedData.encode = function encode(message, writer) {
+ if (!writer)
+ writer = $Writer.create();
+ if (message.ballot != null && message.hasOwnProperty("ballot"))
+ $root.meerkat.ScannedBallot.encode(message.ballot, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();
+ if (message.error != null && message.hasOwnProperty("error"))
+ $root.meerkat.ScanError.encode(message.error, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();
+ if (message.serial != null && message.hasOwnProperty("serial"))
+ writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.serial);
+ if (message.scannerId != null && message.hasOwnProperty("scannerId"))
+ writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.scannerId);
+ return writer;
+ };
+
+ /**
+ * Encodes the specified ScannedData message, length delimited. Does not implicitly {@link meerkat.ScannedData.verify|verify} messages.
+ * @function encodeDelimited
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {meerkat.IScannedData} message ScannedData message or plain object to encode
+ * @param {$protobuf.Writer} [writer] Writer to encode to
+ * @returns {$protobuf.Writer} Writer
+ */
+ ScannedData.encodeDelimited = function encodeDelimited(message, writer) {
+ return this.encode(message, writer).ldelim();
+ };
+
+ /**
+ * Decodes a ScannedData message from the specified reader or buffer.
+ * @function decode
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @param {number} [length] Message length if known beforehand
+ * @returns {meerkat.ScannedData} ScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScannedData.decode = function decode(reader, length) {
+ if (!(reader instanceof $Reader))
+ reader = $Reader.create(reader);
+ var end = length === undefined ? reader.len : reader.pos + length, message = new $root.meerkat.ScannedData();
+ while (reader.pos < end) {
+ var tag = reader.uint32();
+ switch (tag >>> 3) {
+ case 2:
+ message.ballot = $root.meerkat.ScannedBallot.decode(reader, reader.uint32());
+ break;
+ case 3:
+ message.error = $root.meerkat.ScanError.decode(reader, reader.uint32());
+ break;
+ case 4:
+ message.serial = reader.uint64();
+ break;
+ case 5:
+ message.scannerId = reader.bytes();
+ break;
+ default:
+ reader.skipType(tag & 7);
+ break;
+ }
+ }
+ return message;
+ };
+
+ /**
+ * Decodes a ScannedData message from the specified reader or buffer, length delimited.
+ * @function decodeDelimited
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+ * @returns {meerkat.ScannedData} ScannedData
+ * @throws {Error} If the payload is not a reader or valid buffer
+ * @throws {$protobuf.util.ProtocolError} If required fields are missing
+ */
+ ScannedData.decodeDelimited = function decodeDelimited(reader) {
+ if (!(reader instanceof $Reader))
+ reader = new $Reader(reader);
+ return this.decode(reader, reader.uint32());
+ };
+
+ /**
+ * Verifies a ScannedData message.
+ * @function verify
+ * @memberof meerkat.ScannedData
+ * @static
+ * @param {Object.