From ef7be352baaec26bdcdce01a71fbee47bbdeec15 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Sat, 21 Jan 2017 23:48:48 +0100 Subject: [PATCH] Fixed: Properly parse nested textformat options, also tackles #655 --- dist/light/protobuf.js | 2 +- dist/light/protobuf.min.js | 2 +- dist/light/protobuf.min.js.gz | Bin 15929 -> 15930 bytes dist/minimal/protobuf.js | 2 +- dist/minimal/protobuf.min.js | 2 +- dist/minimal/protobuf.min.js.gz | Bin 6293 -> 6293 bytes dist/protobuf.js | 32 +++++++++++++++++-------------- dist/protobuf.js.map | 2 +- dist/protobuf.min.js | 6 +++--- dist/protobuf.min.js.gz | Bin 19020 -> 19047 bytes dist/protobuf.min.js.map | 2 +- src/parse.js | 30 ++++++++++++++++------------- tests/comp_options-textformat.js | 2 ++ tests/data/uncommon.proto | 2 ++ 14 files changed, 48 insertions(+), 36 deletions(-) diff --git a/dist/light/protobuf.js b/dist/light/protobuf.js index 7e1114f08..e5b90dd74 100644 --- a/dist/light/protobuf.js +++ b/dist/light/protobuf.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Sat, 21 Jan 2017 18:41:01 UTC + * Compiled Sat, 21 Jan 2017 22:47:16 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ diff --git a/dist/light/protobuf.min.js b/dist/light/protobuf.min.js index 52efa0ce5..da4be4a73 100644 --- a/dist/light/protobuf.min.js +++ b/dist/light/protobuf.min.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Sat, 21 Jan 2017 18:41:01 UTC + * Compiled Sat, 21 Jan 2017 22:47:16 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ diff --git a/dist/light/protobuf.min.js.gz b/dist/light/protobuf.min.js.gz index 92992400953302619fb6dd6a12f27b3d1d15f531..34aaf44bea4b950038a6a827e095dd67c3b1ffc9 100644 GIT binary patch delta 15691 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 delta 15715 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 LIPk)hmP-HtR3Sq~ literal 6293 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 L$&I)kmP-HtT9#j% diff --git a/dist/protobuf.js b/dist/protobuf.js index b87c6dd99..d72989092 100644 --- a/dist/protobuf.js +++ b/dist/protobuf.js @@ -1,6 +1,6 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Sat, 21 Jan 2017 18:41:01 UTC + * Compiled Sat, 21 Jan 2017 22:47:16 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ @@ -3850,24 +3850,28 @@ function parse(source, root, options) { } function parseOptionValue(parent, name) { - if (skip("{", true)) { - while ((token = next()) !== "}") { - - /* istanbul ignore next */ - if (!isName(token)) + if (skip("{", true)) { // { a: "foo" b { c: "bar" } } + /* istanbul ignore next */ + do { + if (!isName(token = next())) throw illegal(token, "name"); - - skip(":"); - // if (skip(":", true)) - parent.setOption(name + "." + token, readValue(true)); - // else - // parseOptionValue(parent, name + "." + token); - } + if (peek() === "{") + parseOptionValue(parent, name + "." + token); + else { + skip(":"); + setOption(parent, name + "." + token, readValue(true)); + } + } while (!skip("}", true)); } else - parent.setOption(name, readValue(true)); + setOption(parent, name, readValue(true)); // Does not enforce a delimiter to be universal } + function setOption(parent, name, value) { + if (parent.setOption) + parent.setOption(name, value); + } + function parseInlineOptions(parent) { if (skip("[", true)) { do { diff --git a/dist/protobuf.js.map b/dist/protobuf.js.map index 5da961d67..851ec1600 100644 --- a/dist/protobuf.js.map +++ b/dist/protobuf.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object.} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return i ? String.fromCharCode.apply(String, chunk.slice(0, i)) : \"\";\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(22),\r\n util = require(37);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a class instance, which is also a {@link Message} prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return ctor.call(this,p)\").eof(type.name, {\r\n ctor: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.fieldsArray.forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue) && !field.long\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.oneofsArray.forEach(function(oneof) {\r\n Object.defineProperty(prototype, oneof.resolve().name, {\r\n get: util.oneOfGetter(oneof.oneof),\r\n set: util.oneOfSetter(oneof.oneof)\r\n });\r\n });\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) {\r\n var values = field.resolvedType.values; gen\r\n (\"switch(d%s){\", prop);\r\n Object.keys(values).forEach(function(key) {\r\n if (field.repeated && values[key] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", key)\r\n (\"case %j:\", values[key])\r\n (\"m%s=%j\", prop, values[key])\r\n (\"break\");\r\n }); gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n var oneofFields = oneof.fieldsArray;\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n var self = this;\r\n Object.keys(values || {}).forEach(function(key) {\r\n self.valuesById[self.values[key] = values[key]] = key;\r\n });\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id, comment) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Enum = require(16),\r\n types = require(36),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(FieldPrototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(21);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(19);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(15);\r\nprotobuf.decoder = require(14);\r\nprotobuf.verifier = require(40);\r\nprotobuf.converter = require(13);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(25);\r\nprotobuf.Namespace = require(24);\r\nprotobuf.Root = require(30);\r\nprotobuf.Enum = require(16);\r\nprotobuf.Type = require(35);\r\nprotobuf.Field = require(17);\r\nprotobuf.OneOf = require(26);\r\nprotobuf.MapField = require(21);\r\nprotobuf.Service = require(33);\r\nprotobuf.Method = require(23);\r\n\r\n// Runtime\r\nprotobuf.Class = require(11);\r\nprotobuf.Message = require(22);\r\n\r\n// Utility\r\nprotobuf.types = require(36);\r\nprotobuf.util = require(37);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(41);\r\nprotobuf.BufferWriter = require(42);\r\nprotobuf.Reader = require(28);\r\nprotobuf.BufferReader = require(29);\r\n\r\n// Utility\r\nprotobuf.util = require(39);\r\nprotobuf.rpc = require(31);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(34);\r\nprotobuf.parse = require(27);\r\nprotobuf.common = require(12);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar types = require(36),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(35),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias NamespaceBase.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\n\r\nfunction initNested() {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @memberof Namespace\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(NamespacePrototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n /* istanbul ignore next */\r\n throw TypeError(\"nested.\" + nestedName + \" must be JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespacePrototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (!nestedTypes)\r\n initNested();\r\n /* istanbul ignore next */\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object must be \" + nestedError);\r\n /* istanbul ignore next */\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object must be an extension field when not part of a type\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n /* istanbul ignore else */\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n\r\n /* istanbul ignore next */\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n /* istanbul ignore next */\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n\r\n if (util.isString(path)) {\r\n path = path.split(\".\");\r\n /* istanbul ignore next */\r\n } else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n /* istanbul ignore next */\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(37);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nObject.defineProperties(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(30);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOfPrototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent) {\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n this.oneof.forEach(function(fieldName) {\r\n var field = parent.get(fieldName);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n });\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(34),\r\n Root = require(30),\r\n Type = require(35),\r\n Field = require(17),\r\n MapField = require(21),\r\n OneOf = require(26),\r\n Enum = require(16),\r\n Service = require(33),\r\n Method = require(23),\r\n types = require(36),\r\n util = require(37);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n skip(\":\");\r\n // if (skip(\":\", true))\r\n parent.setOption(name + \".\" + token, readValue(true));\r\n // else\r\n // parseOptionValue(parent, name + \".\" + token);\r\n }\r\n } else\r\n parent.setOption(name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(39);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(29);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(28);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n Enum = require(16),\r\n util = require(37);\r\n\r\nvar parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRootPrototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field) {\r\n if (object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(32);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(23),\r\n util = require(37),\r\n rpc = require(31);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(ServicePrototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n this.methodsArray.forEach(function(method) {\r\n rpcService[util.lcFirst(method.resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(method.name), {\r\n m: method,\r\n q: method.resolvedRequestType.ctor,\r\n s: method.resolvedResponseType.ctor\r\n });\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n commentText = source\r\n .substring(start, end)\r\n .split(/\\n/g)\r\n .map(function(line) {\r\n return line.replace(/ *[*/]+ */, \"\").trim();\r\n })\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(26),\r\n Field = require(17),\r\n Service = require(33),\r\n Class = require(11),\r\n Message = require(22),\r\n Reader = require(28),\r\n Writer = require(41),\r\n util = require(37),\r\n encoder = require(15),\r\n decoder = require(14),\r\n verifier = require(40),\r\n converter = require(13);\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n /* istanbul ignore next */\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = this.fieldsArray.map(function(fld) { return fld.resolve().resolvedType; });\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.from = TypePrototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nTypePrototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(37);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(39);\r\n\r\nutil.codegen = require(3);\r\nutil.extend = require(5);\r\nutil.fetch = require(6);\r\nutil.path = require(8);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n return object ? Object.keys(object).map(function(key) {\r\n return object[key];\r\n }) : [];\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(7);\r\nutil.utf8 = require(10);\r\nutil.pool = require(9);\r\nutil.LongBits = require(38);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n fieldNames.forEach(function(name) {\r\n fieldMap[name] = 1;\r\n });\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n lazyTypes.forEach(function(types) {\r\n Object.keys(types).forEach(function(index) {\r\n var path = types[index |= 0].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n types[index] = ptr;\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (typeof value === \"string\") {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(41);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(39);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":[],"mappings":";;;;;;AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1QA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"protobuf.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object.} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return i ? String.fromCharCode.apply(String, chunk.slice(0, i)) : \"\";\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(22),\r\n util = require(37);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a class instance, which is also a {@link Message} prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return ctor.call(this,p)\").eof(type.name, {\r\n ctor: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.fieldsArray.forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue) && !field.long\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.oneofsArray.forEach(function(oneof) {\r\n Object.defineProperty(prototype, oneof.resolve().name, {\r\n get: util.oneOfGetter(oneof.oneof),\r\n set: util.oneOfSetter(oneof.oneof)\r\n });\r\n });\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) {\r\n var values = field.resolvedType.values; gen\r\n (\"switch(d%s){\", prop);\r\n Object.keys(values).forEach(function(key) {\r\n if (field.repeated && values[key] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", key)\r\n (\"case %j:\", values[key])\r\n (\"m%s=%j\", prop, values[key])\r\n (\"break\");\r\n }); gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n var oneofFields = oneof.fieldsArray;\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n var self = this;\r\n Object.keys(values || {}).forEach(function(key) {\r\n self.valuesById[self.values[key] = values[key]] = key;\r\n });\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id, comment) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Enum = require(16),\r\n types = require(36),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(FieldPrototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(21);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(19);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(15);\r\nprotobuf.decoder = require(14);\r\nprotobuf.verifier = require(40);\r\nprotobuf.converter = require(13);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(25);\r\nprotobuf.Namespace = require(24);\r\nprotobuf.Root = require(30);\r\nprotobuf.Enum = require(16);\r\nprotobuf.Type = require(35);\r\nprotobuf.Field = require(17);\r\nprotobuf.OneOf = require(26);\r\nprotobuf.MapField = require(21);\r\nprotobuf.Service = require(33);\r\nprotobuf.Method = require(23);\r\n\r\n// Runtime\r\nprotobuf.Class = require(11);\r\nprotobuf.Message = require(22);\r\n\r\n// Utility\r\nprotobuf.types = require(36);\r\nprotobuf.util = require(37);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(41);\r\nprotobuf.BufferWriter = require(42);\r\nprotobuf.Reader = require(28);\r\nprotobuf.BufferReader = require(29);\r\n\r\n// Utility\r\nprotobuf.util = require(39);\r\nprotobuf.rpc = require(31);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(34);\r\nprotobuf.parse = require(27);\r\nprotobuf.common = require(12);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar types = require(36),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(35),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias NamespaceBase.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\n\r\nfunction initNested() {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @memberof Namespace\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(NamespacePrototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n /* istanbul ignore next */\r\n throw TypeError(\"nested.\" + nestedName + \" must be JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespacePrototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (!nestedTypes)\r\n initNested();\r\n /* istanbul ignore next */\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object must be \" + nestedError);\r\n /* istanbul ignore next */\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object must be an extension field when not part of a type\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n /* istanbul ignore else */\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n\r\n /* istanbul ignore next */\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n /* istanbul ignore next */\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n\r\n if (util.isString(path)) {\r\n path = path.split(\".\");\r\n /* istanbul ignore next */\r\n } else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n /* istanbul ignore next */\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(37);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nObject.defineProperties(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(30);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOfPrototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent) {\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n this.oneof.forEach(function(fieldName) {\r\n var field = parent.get(fieldName);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n });\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(34),\r\n Root = require(30),\r\n Type = require(35),\r\n Field = require(17),\r\n MapField = require(21),\r\n OneOf = require(26),\r\n Enum = require(16),\r\n Service = require(33),\r\n Method = require(23),\r\n types = require(36),\r\n util = require(37);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(39);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(29);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(28);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n Enum = require(16),\r\n util = require(37);\r\n\r\nvar parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRootPrototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field) {\r\n if (object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(32);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(23),\r\n util = require(37),\r\n rpc = require(31);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(ServicePrototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n this.methodsArray.forEach(function(method) {\r\n rpcService[util.lcFirst(method.resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(method.name), {\r\n m: method,\r\n q: method.resolvedRequestType.ctor,\r\n s: method.resolvedResponseType.ctor\r\n });\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n commentText = source\r\n .substring(start, end)\r\n .split(/\\n/g)\r\n .map(function(line) {\r\n return line.replace(/ *[*/]+ */, \"\").trim();\r\n })\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(26),\r\n Field = require(17),\r\n Service = require(33),\r\n Class = require(11),\r\n Message = require(22),\r\n Reader = require(28),\r\n Writer = require(41),\r\n util = require(37),\r\n encoder = require(15),\r\n decoder = require(14),\r\n verifier = require(40),\r\n converter = require(13);\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n /* istanbul ignore next */\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = this.fieldsArray.map(function(fld) { return fld.resolve().resolvedType; });\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.from = TypePrototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nTypePrototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(37);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(39);\r\n\r\nutil.codegen = require(3);\r\nutil.extend = require(5);\r\nutil.fetch = require(6);\r\nutil.path = require(8);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n return object ? Object.keys(object).map(function(key) {\r\n return object[key];\r\n }) : [];\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(7);\r\nutil.utf8 = require(10);\r\nutil.pool = require(9);\r\nutil.LongBits = require(38);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n fieldNames.forEach(function(name) {\r\n fieldMap[name] = 1;\r\n });\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n lazyTypes.forEach(function(types) {\r\n Object.keys(types).forEach(function(index) {\r\n var path = types[index |= 0].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n types[index] = ptr;\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (typeof value === \"string\") {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(41);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(39);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/dist/protobuf.min.js b/dist/protobuf.min.js index dfb3efb4f..dfd4c2236 100644 --- a/dist/protobuf.min.js +++ b/dist/protobuf.min.js @@ -1,9 +1,9 @@ /*! * protobuf.js v6.6.0 (c) 2016, Daniel Wirtz - * Compiled Sat, 21 Jan 2017 18:41:01 UTC + * Compiled Sat, 21 Jan 2017 22:47:16 UTC * Licensed under the BSD-3-Clause License * see: https://github.com/dcodeIO/protobuf.js for details */ -!function(e,t){"use strict";!function e(t,r,n){function i(o,u){if(!r[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(s)return s(o,!0);var f=Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r=t[o][1][e];return i(r?r:e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var s="function"==typeof require&&require,o=0;o1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var s=Array(64),o=Array(123),u=0;u<64;)o[s[u]=u<26?u+65:u<52?u+71:u<62?u-4:u-59|43]=u++;i.encode=function(e,t,r){for(var n,i=[],o=0,u=0;t>2],n=(3&a)<<4,u=1;break;case 1:i[o++]=s[n|a>>4],n=(15&a)<<2,u=2;break;case 2:i[o++]=s[n|a>>6],i[o++]=s[63&a],u=0}}return u&&(i[o++]=s[n],i[o]=61,1===u&&(i[o+1]=61)),String.fromCharCode.apply(String,i)};var a="invalid encoding";i.decode=function(e,r,n){for(var i,s=n,u=0,f=0;f1)break;if((l=o[l])===t)throw Error(a);switch(u){case 0:i=l,u=1;break;case 1:r[n++]=i<<2|(48&l)>>4,i=l,u=2;break;case 2:r[n++]=(15&i)<<4|(60&l)>>2,i=l,u=3;break;case 3:r[n++]=(3&i)<<6|l,u=0}}if(1===u)throw Error(a);return n-s},i.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)}},{}],3:[function(e,r){function n(){function e(){for(var t=[],r=0;r ").replace(/\t/g," "));var o=Object.keys(i||(i={}));return Function.apply(null,o.concat("return "+s)).apply(null,o.map(function(e){return i[e]}))}for(var h=[],c=[],p=1,d=!1,y=0;y0?t.splice(--s,2):r?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return n+t.join("/")};n.resolve=function(e,t,r){return r||(t=s(t)),i(t)?t:(r||(e=s(e)),(e=e.replace(/(?:\/|^)[^\/]+$/,"")).length?s(e+"/"+t):t)}},{}],9:[function(e,t){function r(e,t,r){var n=r||8192,i=n>>>1,s=null,o=n;return function(r){if(r<1||r>i)return e(r);o+r>n&&(s=e(n),o=0);var u=t.call(s,o,o+=r);return 7&o&&(o=(7|o)+1),u}}t.exports=r},{}],10:[function(e,t,r){var n=r;n.length=function(e){for(var t=0,r=0,n=0;n191&&i<224?o[u++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[u++]=55296+(i>>10),o[u++]=56320+(1023&i)):o[u++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],u>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),u=0);return s?(u&&s.push(String.fromCharCode.apply(String,o.slice(0,u))),s.join("")):u?String.fromCharCode.apply(String,o.slice(0,u)):""},n.write=function(e,t,r){for(var n,i,s=r,o=0;o>6|192,t[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(i=e.charCodeAt(o+1)))?(n=65536+((1023&n)<<10)+(1023&i),++o,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-s}},{}],11:[function(e,t){function r(e){return n(e)}function n(t,n){if(i||(i=e(35)),!(t instanceof i))throw TypeError("type must be a Type");if(n){if("function"!=typeof n)throw TypeError("ctor must be a function")}else n=o.codegen("p")("return ctor.call(this,p)").eof(t.name,{ctor:s});n.constructor=r;var u=n.prototype=new s;return u.constructor=n,o.merge(n,s,!0),n.$type=t,u.$type=t,t.fieldsArray.forEach(function(e){u[e.name]=Array.isArray(e.resolve().defaultValue)?o.emptyArray:o.isObject(e.defaultValue)&&!e.long?o.emptyObject:e.defaultValue}),t.oneofsArray.forEach(function(e){Object.defineProperty(u,e.resolve().name,{get:o.oneOfGetter(e.oneof),set:o.oneOfSetter(e.oneof)})}),t.ctor=n,u}t.exports=r;var i,s=e(22),o=e(37);r.create=n,r.prototype=s},{22:22,35:35,37:37}],12:[function(e,t){function r(e,t){/\/|\./.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),r[e]=t}t.exports=r,r("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var n;r("duration",{Duration:n={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),r("timestamp",{Timestamp:n}),r("empty",{Empty:{fields:{}}}),r("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),r("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}})},{}],13:[function(e,t,r){function n(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof o){var i=t.resolvedType.values;e("switch(d%s){",n),Object.keys(i).forEach(function(r){t.repeated&&i[r]===t.typeDefault&&e("default:"),e("case%j:",r)("case %j:",i[r])("m%s=%j",n,i[r])("break")}),e("}")}else e('if(typeof d%s!=="object")',n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%d].fromObject(d%s)",n,r,n);else{var s=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",n,n);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,s)('else if(typeof d%s==="string")',n)("m%s=parseInt(d%s,10)",n,n)('else if(typeof d%s==="number")',n)("m%s=d%s",n,n)('else if(typeof d%s==="object")',n)("m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)",n,n,n,s?"true":"");break;case"bytes":e('if(typeof d%s==="string")',n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length)",n)("m%s=d%s",n,n);break;case"string":e("m%s=String(d%s)",n,n);break;case"bool":e("m%s=Boolean(d%s)",n,n)}}return e}function i(e,t,r,n){if(t.resolvedType)t.resolvedType instanceof o?e("d%s=o.enums===String?types[%d].values[m%s]:m%s",n,r,n,n):e("d%s=types[%d].toObject(m%s,o)",n,r,n);else{var i=!1;switch(t.type){case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low,m%s.high).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:e("d%s=m%s",n,n)}}return e}var s=r,o=e(16),u=e(37);s.fromObject=function(e){var t=e.fieldsArray,r=u.codegen("d")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i>>3){");for(var a=0;a>>0,(t.id<<3|4)>>>0):e("types[%d].encode(%s,w.uint32(%d).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}function i(e){for(var r,i,a=e.fieldsArray,f=e.oneofsArray,l=u.codegen("m","w")("if(!w)")("w=Writer.create()"),r=0;r>>0,8|o.mapKey[h.keyType],h.keyType),p===t?l("types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",r,i):l(".uint32(%d).%s(%s[ks[i]]).ldelim()",16|p,c,i),l("}")("}")):h.repeated?h.packed&&o.packed[c]!==t?l("if(%s&&%s.length&&m.hasOwnProperty(%j)){",i,i,h.name)("w.uint32(%d).fork()",(h.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",i)("w.%s(%s[i])",c,i)("w.ldelim()")("}"):(l("if(%s!==undefined&&m.hasOwnProperty(%j)){",i,h.name)("for(var i=0;i<%s.length;++i)",i),p===t?n(l,h,r,i+"[i]"):l("w.uint32(%d).%s(%s[i])",(h.id<<3|p)>>>0,c,i),l("}")):(h.required||(h.long?l("if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))",i,i,h.name):h.bytes?l("if(%s&&m.hasOwnProperty(%j))",i,h.name):l("if(%s!==undefined&&m.hasOwnProperty(%j))",i,h.name)),p===t?n(l,h,r,i):l("w.uint32(%d).%s(%s)",(h.id<<3|p)>>>0,c,i))}}for(var r=0;r>>0,c,i),l("break")}l("}")}return l("return w")}r.exports=i;var s=e(16),o=e(36),u=e(37)},{16:16,36:36,37:37}],16:[function(e,r){function n(e,t,r){i.call(this,e,r),this.valuesById={},this.values=Object.create(this.valuesById),this.comments={};var n=this;Object.keys(t||{}).forEach(function(e){n.valuesById[n.values[e]=t[e]]=e})}r.exports=n;var i=e(25),s=i.extend(n);n.className="Enum";var o=e(37);n.testJSON=function(e){return!(!e||!e.values)},n.fromJSON=function(e,t){return new n(e,t.values,t.options)},s.toJSON=function(){return{options:this.options,values:this.values}},s.add=function(e,r,n){if(!o.isString(e))throw TypeError("name must be a string");if(!o.isInteger(r))throw TypeError("id must be an integer");if(this.values[e]!==t)throw Error("duplicate name");if(this.valuesById[r]!==t)throw Error("duplicate id");return this.valuesById[this.values[e]=r]=e,this.comments[e]=n||null,this},s.remove=function(e){if(!o.isString(e))throw TypeError("name must be a string");var r=this.values[e];if(r===t)throw Error("name does not exist");return delete this.valuesById[r],delete this.values[e],delete this.comments[e],this}},{25:25,37:37}],17:[function(e,r){function n(e,r,n,s,o,u){if(l.isObject(s)?(u=s,s=o=t):l.isObject(o)&&(u=o,o=t),i.call(this,e,u),!l.isInteger(r)||r<0)throw TypeError("id must be a non-negative integer");if(!l.isString(n))throw TypeError("type must be a string");if(s!==t&&!/^required|optional|repeated$/.test(s=(""+s).toLowerCase()))throw TypeError("rule must be a string rule");if(o!==t&&!l.isString(o))throw TypeError("extend must be a string");this.rule=s&&"optional"!==s?s:t,this.type=n,this.id=r,this.extend=o||t,this.required="required"===s,this.optional=!this.required,this.repeated="repeated"===s,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!l.Long&&f.long[n]!==t,this.bytes="bytes"===n,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.b=null}r.exports=n;var i=e(25),s=i.extend(n);n.className="Field";var o,u,a=e(16),f=e(36),l=e(37);Object.defineProperty(s,"packed",{get:function(){return null===this.b&&(this.b=this.getOption("packed")!==!1),this.b}}),s.setOption=function(e,t,r){return"packed"===e&&(this.b=null),i.prototype.setOption.call(this,e,t,r)},n.testJSON=function(e){return!(!e||e.id===t)},n.fromJSON=function(r,i){return i.keyType!==t?(u||(u=e(21)),u.fromJSON(r,i)):new n(r,i.id,i.type,i.rule,i.extend,i.options)},s.toJSON=function(){return{rule:"optional"!==this.rule&&this.rule||t,type:this.type,id:this.id,extend:this.extend,options:this.options}},s.resolve=function(){if(this.resolved)return this;if((this.typeDefault=f.defaults[this.type])===t)if(o||(o=e(35)),this.resolvedType=this.parent.lookup(this.type,o))this.typeDefault=null;else{if(!(this.resolvedType=this.parent.lookup(this.type,a)))throw Error("unresolvable field type: "+this.type);this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]}if(this.options&&this.options.default!==t&&(this.typeDefault=this.options.default,this.resolvedType instanceof a&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.long)this.typeDefault=l.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var r;l.base64.test(this.typeDefault)?l.base64.decode(this.typeDefault,r=l.newBuffer(l.base64.length(this.typeDefault)),0):l.utf8.write(this.typeDefault,r=l.newBuffer(l.utf8.length(this.typeDefault)),0),this.typeDefault=r}return this.map?this.defaultValue=l.emptyObject:this.repeated?this.defaultValue=l.emptyArray:this.defaultValue=this.typeDefault,i.prototype.resolve.call(this)}},{16:16,21:21,25:25,35:35,36:36,37:37}],18:[function(e,t){function r(e,t,r){return"function"==typeof t?(r=t,t=new i.Root):t||(t=new i.Root),t.load(e,r)}function n(e,t){return t||(t=new i.Root),t.loadSync(e)}var i=t.exports=e(19);i.build="light",i.load=r,i.loadSync=n,i.encoder=e(15),i.decoder=e(14),i.verifier=e(40),i.converter=e(13),i.ReflectionObject=e(25),i.Namespace=e(24),i.Root=e(30),i.Enum=e(16),i.Type=e(35),i.Field=e(17),i.OneOf=e(26),i.MapField=e(21),i.Service=e(33),i.Method=e(23),i.Class=e(11),i.Message=e(22),i.types=e(36),i.util=e(37)},{11:11,13:13,14:14,15:15,16:16,17:17,19:19,21:21,22:22,23:23,24:24,25:25,26:26,30:30,33:33,35:35,36:36,37:37,40:40}],19:[function(t,r,n){function i(){s.Reader.c()}var s=e.protobuf=n;s.build="minimal",s.roots={},s.Writer=t(41),s.BufferWriter=t(42),s.Reader=t(28),s.BufferReader=t(29),s.util=t(39),s.rpc=t(31),s.configure=i,"function"==typeof define&&define.amd&&define(["long"],function(e){return e&&(s.util.Long=e,i()),s})},{28:28,29:29,31:31,39:39,41:41,42:42}],20:[function(e,t){var r=t.exports=e(18);r.build="full",r.tokenize=e(34),r.parse=e(27),r.common=e(12),r.Root.c(r.parse,r.common)},{12:12,18:18,27:27,34:34}],21:[function(e,r){function n(e,t,r,n,s){if(i.call(this,e,t,n,s),!a.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}r.exports=n;var i=e(17),s=i.prototype,o=i.extend(n);n.className="MapField";var u=e(36),a=e(37);n.testJSON=function(e){return i.testJSON(e)&&e.keyType!==t},n.fromJSON=function(e,t){return new n(e,t.id,t.keyType,t.type,t.options)},o.toJSON=function(){return{keyType:this.keyType,type:this.type,id:this.id,extend:this.extend,options:this.options}},o.resolve=function(){if(this.resolved)return this;if(u.mapKey[this.keyType]===t)throw Error("invalid key type: "+this.keyType);return s.resolve.call(this)}},{17:17,36:36,37:37}],22:[function(e,t){function r(e){if(e)for(var t=Object.keys(e),r=0;r0;){var n=e.shift();if(r.nested&&r.nested[n]){if(r=r.nested[n],!(r instanceof s))throw Error("path conflicts with non-namespace objects")}else r.add(r=new s(n))}return t&&r.addJSON(t),r},a.resolveAll=function(){for(var e=this.nestedArray,t=0;t-1&&this.oneof.splice(t,1),e.partOf=null,this},o.onAdd=function(e){s.prototype.onAdd.call(this,e);var t=this;this.oneof.forEach(function(r){var n=e.get(r);n&&!n.partOf&&(n.partOf=t,t.g.push(n))}),i(this)},o.onRemove=function(e){this.g.forEach(function(e){e.parent&&e.parent.remove(e)}),s.prototype.onRemove.call(this,e)}},{17:17,25:25}],27:[function(e,r){function n(e){return/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(e)}function i(e){return/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(e)}function s(e){return/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(e)}function o(e){return null===e?null:e.toLowerCase()}function u(e){return e.substring(0,1)+e.substring(1).replace(/_([a-z])(?=[a-z]|$)/g,function(e,t){return t.toUpperCase()})}function a(e,r,w){function O(e,t){var r=a.filename;return a.filename=null,Error("illegal "+(t||"token")+" '"+e+"' ("+(r?r+", ":"")+"line "+K.line()+")")}function k(){var e,t=[];do{if('"'!==(e=G())&&"'"!==e)throw O(e);t.push(G()),Y(e),e=Q()}while('"'===e||"'"===e);return t.join("")}function j(e){var t=G();switch(o(t)){case"'":case'"':return X(t),k();case"true":return!0;case"false":return!1}try{return S(t)}catch(r){if(e&&i(t))return t;throw O(t,"value")}}function x(){var e=A(G()),t=e;return Y("to",!0)&&(t=A(G())),Y(";"),[e,t]}function S(e){var t=1;"-"===e.charAt(0)&&(t=-1,e=e.substring(1));var r=o(e);switch(r){case"inf":return t*(1/0);case"nan":return NaN;case"0":return 0}if(/^[1-9][0-9]*$/.test(e))return t*parseInt(e,10);if(/^0[x][0-9a-f]+$/.test(r))return t*parseInt(e,16);if(/^0[0-7]+$/.test(e))return t*parseInt(e,8);if(/^(?!e)[0-9]*(?:\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(r))return t*parseFloat(e);throw O(e,"number")}function A(e,t){var r=o(e);switch(r){case"max":return 536870911;case"0":return 0}if("-"===e.charAt(0)&&!t)throw O(e,"id");if(/^-?[1-9][0-9]*$/.test(e))return parseInt(e,10);if(/^-?0[x][0-9a-f]+$/.test(r))return parseInt(e,16);if(/^-?0[0-7]+$/.test(e))return parseInt(e,8);throw O(e,"id")}function T(){if(U!==t)throw O("package");if(U=G(),!i(U))throw O(U,"name");ne=ne.define(U),Y(";")}function N(){var e,t=Q();switch(t){case"weak":e=_||(_=[]),G();break;case"public":G();default:e=H||(H=[])}t=k(),Y(";"),e.push(t)}function E(){if(Y("="),Z=o(k()),re="proto3"===Z,!re&&"proto2"!==Z)throw O(Z,"syntax");Y(";")}function J(e,t){switch(t){case"option":return $(e,t),Y(";"),!0;case"message":return D(e,t),!0;case"enum":return B(e,t),!0;case"service":return R(e,t),!0;case"extend":return M(e,t),!0}return!1}function D(e,t){var r=G();if(!n(r))throw O(r,"type name");var s=new h(r);if(s.comment=ee(),Y("{",!0)){for(;"}"!==(t=G());){var u=o(t);if(!J(s,t))switch(u){case"map":q(s,u);break;case"required":case"optional":case"repeated":L(s,u);break;case"oneof":z(s,u);break;case"extensions":(s.extensions||(s.extensions=[])).push(x(s,u));break;case"reserved":(s.reserved||(s.reserved=[])).push(x(s,u));break;default:if(!re||!i(t))throw O(t);X(t),L(s,"optional")}}Y(";",!0)}else Y(";");e.add(s)}function L(e,r,s){var o=G();if("group"===o)return I(e,r),t;if(!i(o))throw O(o,"type");var u=G();if(!n(u))throw O(u,"name"); -u=ie(u),Y("=");var a=new c(u,A(G()),o,r,s),f=K.line();a.comment=ee(),P(a),a.comment||(a.comment=ee(f)),a.repeated&&g.packed[o]!==t&&!re&&a.setOption("packed",!1,!0),e.add(a)}function I(e,t){var r=G();if(!n(r))throw O(r,"name");var i=b.lcFirst(r);r===i&&(r=b.ucFirst(r)),Y("=");var s=A(G()),u=new h(r);u.group=!0,u.comment=ee();var a=new c(i,s,r,t);for(Y("{");"}"!==(W=G());)switch(W=o(W)){case"option":$(u,W),Y(";");break;case"required":case"optional":case"repeated":L(u,W);break;default:throw O(W)}Y(";",!0),e.add(u).add(a)}function q(e){Y("<");var r=G();if(g.mapKey[r]===t)throw O(r,"type");Y(",");var s=G();if(!i(s))throw O(s,"type");Y(">");var o=G();if(!n(o))throw O(o,"name");o=ie(o),Y("=");var u=new p(o,A(G()),r,s),a=K.line();u.comment=ee(),P(u),u.comment||(u.comment=ee(a)),e.add(u)}function z(e,t){var r=G();if(!n(r))throw O(r,"name");r=ie(r);var i=new d(r),s=K.line();if(i.comment=ee(),Y("{",!0)){for(;"}"!==(t=G());)"option"===t?($(i,t),Y(";")):(X(t),L(i,"optional"));Y(";",!0)}else Y(";"),i.comment||(i.comment=ee(s));e.add(i)}function B(e,t){var r=G();if(!n(r))throw O(r,"name");var i=new y(r);if(i.comment=ee(),Y("{",!0)){for(;"}"!==(t=G());)"option"===o(t)?($(i,t),Y(";")):F(i,t);Y(";",!0)}else Y(";");e.add(i)}function F(e,t){if(!n(t))throw O(t,"name");var r=t;Y("=");var i=A(G(),!0),s=K.line();e.add(r,i,ee()),P({}),e.comments[r]||(e.comments[r]=ee(s))}function $(e,t){var r=Y("(",!0),n=G();if(!i(n))throw O(n,"name");r&&(Y(")"),n="("+n+")",t=Q(),s(t)&&(n+=t,G())),Y("="),V(e,n)}function V(e,t){if(Y("{",!0))for(;"}"!==(W=G());){if(!n(W))throw O(W,"name");Y(":"),e.setOption(t+"."+W,j(!0))}else e.setOption(t,j(!0))}function P(e){if(Y("[",!0)){do $(e,"option");while(Y(",",!0));Y("]")}return Y(";"),e}function R(e,t){if(t=G(),!n(t))throw O(t,"service name");var r=t,i=new m(r);if(i.comment=ee(),Y("{",!0)){for(;"}"!==(t=G());){var s=o(t);switch(s){case"option":$(i,s),Y(";");break;case"rpc":C(i,s);break;default:throw O(t)}}Y(";",!0)}else Y(";");e.add(i)}function C(e,t){var r=t,s=G();if(!n(s))throw O(s,"name");var u,a,f,l;if(Y("("),Y("stream",!0)&&(a=!0),!i(t=G()))throw O(t);if(u=t,Y(")"),Y("returns"),Y("("),Y("stream",!0)&&(l=!0),!i(t=G()))throw O(t);f=t,Y(")");var h=new v(s,r,u,f,a,l),c=K.line();if(h.comment=ee(),Y("{",!0)){for(;"}"!==(t=G());){var p=o(t);switch(p){case"option":$(h,p),Y(";");break;default:throw O(t)}}Y(";",!0)}else Y(";"),h.comment||(h.comment=ee(c));e.add(h)}function M(e,t){var r=G();if(!i(r))throw O(r,"reference");if(Y("{",!0)){for(;"}"!==(t=G());){var n=o(t);switch(n){case"required":case"repeated":case"optional":L(e,n,r);break;default:if(!re||!i(t))throw O(t);X(t),L(e,"optional",r)}}Y(";",!0)}else Y(";")}r instanceof l||(w=r,r=new l),w||(w=a.defaults);for(var U,H,_,Z,W,K=f(e),G=K.next,X=K.push,Q=K.peek,Y=K.skip,ee=K.cmnt,te=!0,re=!1,ne=r,ie=w.keepCase?function(e){return e}:u;null!==(W=G());){var se=o(W);switch(se){case"package":if(!te)throw O(W);T();break;case"import":if(!te)throw O(W);N();break;case"syntax":if(!te)throw O(W);E();break;case"option":if(!te)throw O(W);$(ne,W),Y(";");break;default:if(J(ne,W)){te=!1;continue}throw O(W)}}return a.filename=null,{package:U,imports:H,weakImports:_,syntax:Z,root:r}}r.exports=a,a.filename=null,a.defaults={keepCase:!1};var f=e(34),l=e(30),h=e(35),c=e(17),p=e(21),d=e(26),y=e(16),m=e(33),v=e(23),g=e(36),b=e(37)},{16:16,17:17,21:21,23:23,26:26,30:30,33:33,34:34,35:35,36:36,37:37}],28:[function(e,t){function r(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function n(e){this.buf=e,this.pos=0,this.len=e.length}function i(){var e=new w(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw r(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw r(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function s(){return i.call(this).toLong()}function o(){return i.call(this).toNumber()}function u(){return i.call(this).toLong(!0)}function a(){return i.call(this).toNumber(!0)}function f(){return i.call(this).zzDecode().toLong()}function l(){return i.call(this).zzDecode().toNumber()}function h(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function c(){if(this.pos+8>this.len)throw r(this,8);return new w(h(this.buf,this.pos+=4),h(this.buf,this.pos+=4))}function p(){return c.call(this).toLong(!0)}function d(){return c.call(this).toNumber(!0)}function y(){return c.call(this).zzDecode().toLong()}function m(){return c.call(this).zzDecode().toNumber()}function v(){b.Long?(k.int64=s,k.uint64=u,k.sint64=f,k.fixed64=p,k.sfixed64=y):(k.int64=o,k.uint64=a,k.sint64=l,k.fixed64=d,k.sfixed64=m)}t.exports=n;var g,b=e(39),w=b.LongBits,O=b.utf8;n.create=b.Buffer?function(t){return g||(g=e(29)),(n.create=function(e){return b.Buffer.isBuffer(e)?new g(e):new n(e)})(t)}:function(e){return new n(e)};var k=n.prototype;k.h=b.Array.prototype.subarray||b.Array.prototype.slice,k.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return e}}(),k.int32=function(){return 0|this.uint32()},k.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},k.bool=function(){return 0!==this.uint32()},k.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return h(this.buf,this.pos+=4)},k.sfixed32=function(){var e=this.fixed32();return e>>>1^-(1&e)};var j="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(r,n){return t[0]=r[n],t[1]=r[n+1],t[2]=r[n+2],t[3]=r[n+3],e[0]}:function(r,n){return t[3]=r[n],t[2]=r[n+1],t[1]=r[n+2],t[0]=r[n+3],e[0]}}():function(e,t){var r=h(e,t+4),n=2*(r>>31)+1,i=r>>>23&255,s=8388607&r;return 255===i?s?NaN:n*(1/0):0===i?1.401298464324817e-45*n*s:n*Math.pow(2,i-150)*(s+8388608)};k.float=function(){if(this.pos+4>this.len)throw r(this,4);var e=j(this.buf,this.pos);return this.pos+=4,e};var x="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(r,n){return t[0]=r[n],t[1]=r[n+1],t[2]=r[n+2],t[3]=r[n+3],t[4]=r[n+4],t[5]=r[n+5],t[6]=r[n+6],t[7]=r[n+7],e[0]}:function(r,n){return t[7]=r[n],t[6]=r[n+1],t[5]=r[n+2],t[4]=r[n+3],t[3]=r[n+4],t[2]=r[n+5],t[1]=r[n+6],t[0]=r[n+7],e[0]}}():function(e,t){var r=h(e,t+4),n=h(e,t+8),i=2*(n>>31)+1,s=n>>>20&2047,o=4294967296*(1048575&n)+r;return 2047===s?o?NaN:i*(1/0):0===s?5e-324*i*o:i*Math.pow(2,s-1075)*(o+4503599627370496)};k.double=function(){if(this.pos+8>this.len)throw r(this,4);var e=x(this.buf,this.pos);return this.pos+=8,e},k.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw r(this,e);return this.pos+=e,t===n?new this.buf.constructor(0):this.h.call(this.buf,t,n)},k.string=function(){var e=this.bytes();return O.read(e,0,e.length)},k.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw r(this,e);this.pos+=e}else do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++]);return this},k.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4===(e=7&this.uint32()))break;this.skipType(e)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},n.c=v,v()},{29:29,39:39}],29:[function(e,t){function r(e){n.call(this,e)}t.exports=r;var n=e(28),i=r.prototype=Object.create(n.prototype);i.constructor=r;var s=e(39);s.Buffer&&(i.h=s.Buffer.prototype.slice),i.string=function(){var e=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len))}},{28:28,39:39}],30:[function(e,r){function n(e){o.call(this,"",e),this.deferred=[],this.files=[]}function i(){}function s(e){var r=e.parent.lookup(e.extend);if(r){var n=new l(e.fullName,e.id,e.type,e.rule,t,e.options);return n.declaringField=e,e.extensionField=n,r.add(n),!0}return!1}r.exports=n;var o=e(24),u=o.extend(n);n.className="Root";var a,f,l=e(17),h=e(16),c=e(37);n.fromJSON=function(e,t){return t||(t=new n),t.setOptions(e.options).addJSON(e.nested)},u.resolvePath=c.path.resolve,u.load=function e(r,n,s){function o(e,t){if(s){var r=s;if(s=null,p)throw e;r(e,t)}}function u(e,t){try{if(c.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),c.isString(t)){a.filename=e;var r=a(t,h,n);r.imports&&r.imports.forEach(function(t){l(h.resolvePath(e,t))}),r.weakImports&&r.weakImports.forEach(function(t){l(h.resolvePath(e,t),!0)})}else h.setOptions(t.options).addJSON(t.nested)}catch(e){o(e)}p||d||o(null,h)}function l(e,r){var n=e.lastIndexOf("google/protobuf/");if(n>-1){var i=e.substring(n);i in f&&(e=i)}if(!(h.files.indexOf(e)>-1)){if(h.files.push(e),e in f)return p?u(e,f[e]):(++d,setTimeout(function(){--d,u(e,f[e])})),t;if(p){var a;try{a=c.fs.readFileSync(e).toString("utf8")}catch(e){return r||o(e),t}u(e,a)}else++d,c.fetch(e,function(n,i){if(--d,s)return n?(r?d||o(null,h):o(n),t):(u(e,i),t)})}}"function"==typeof n&&(s=n,n=t);var h=this;if(!s)return c.asPromise(e,h,r);var p=s===i,d=0;return c.isString(r)&&(r=[r]),r.forEach(function(e){l(h.resolvePath("",e))}),p?h:(d||o(null,h),t)},u.loadSync=function(e,t){if(!c.isNode)throw Error("not supported");return this.load(e,t,i)},u.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return o.prototype.resolveAll.call(this)};var p=/^[A-Z]/;u.e=function(e){var r=this.deferred.slice();this.deferred=[];for(var n=0;n-1&&this.deferred.splice(r,1)}e.extensionField&&(e.extensionField.parent.remove(e.extensionField),e.extensionField=null)}else if(e instanceof o){for(var n=e.nestedArray,i=0;i0)return w.shift();if(O)return i();var t,n,o,u,l;do{if(d===y)return null;for(t=!1;/\s/.test(o=a(d));)if("\n"===o&&++m,++d===y)return null;if("/"===a(d)){if(++d===y)throw r("comment");if("/"===a(d)){for(l="/"===a(u=d+1);"\n"!==a(++d);)if(d===y)return null;++d,l&&f(u,d-1),++m,t=!0}else{if("*"!==(o=a(d)))return"/";l="*"===a(u=d+1);do{if("\n"===o&&++m,++d===y)throw r("comment");n=o,o=a(d)}while("*"!==n||"/"!==o);++d,l&&f(u,d-2),t=!0}}}while(t);var h=d;s.lastIndex=0;var c=s.test(a(h++));if(!c)for(;h]/g,o=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g;n.map={0:"\0",r:"\r",n:"\n",t:"\t"},i.unescape=n},{}],35:[function(e,r){function n(e,r){s.call(this,e,r),this.fields={},this.oneofs=t,this.extensions=t,this.reserved=t,this.group=t,this.j=null,this.g=null,this.k=null,this.l=null}function i(e){return e.j=e.g=e.k=e.l=null,delete e.encode,delete e.decode,delete e.verify,e}r.exports=n;var s=e(24),o=s.prototype,u=s.extend(n);n.className="Type";var a=e(16),f=e(26),l=e(17),h=e(33),c=e(11),p=e(22),d=e(28),y=e(41),m=e(37),v=e(15),g=e(14),b=e(40),w=e(13),O=[a,n,l,h];n.testJSON=function(e){return!(!e||!e.fields)},n.fromJSON=function(e,r){var i=new n(e,r.options);return i.extensions=r.extensions,i.reserved=r.reserved,Object.keys(r.fields).forEach(function(e){i.add(l.fromJSON(e,r.fields[e]))}),r.oneofs&&Object.keys(r.oneofs).forEach(function(e){i.add(f.fromJSON(e,r.oneofs[e]))}),r.nested&&Object.keys(r.nested).forEach(function(e){for(var n=r.nested[e],s=0;s>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if("string"==typeof e){if(!n.Long)return r.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):s},i.toNumber=function(e){if(!e&&this.hi>>>31){var t=~this.lo+1>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},i.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,(!!e)):{low:0|this.lo,high:0|this.hi,unsigned:!!e}};var u=String.prototype.charCodeAt;r.fromHash=function(e){return e===o?s:new r((u.call(e,0)|u.call(e,1)<<8|u.call(e,2)<<16|u.call(e,3)<<24)>>>0,(u.call(e,4)|u.call(e,5)<<8|u.call(e,6)<<16|u.call(e,7)<<24)>>>0)},i.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},i.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},i.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},{39:39}],39:[function(r,n,i){var s=i;s.asPromise=r(1),s.base64=r(2),s.EventEmitter=r(4),s.inquire=r(7),s.utf8=r(10),s.pool=r(9),s.LongBits=r(38),s.emptyArray=Object.freeze?Object.freeze([]):[],s.emptyObject=Object.freeze?Object.freeze({}):{},s.isNode=!!(e.process&&e.process.versions&&e.process.versions.node),s.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},s.isString=function(e){return"string"==typeof e||e instanceof String},s.isObject=function(e){return e&&"object"==typeof e},s.Buffer=function(){try{var e=s.inquire("buffer").Buffer;return e.prototype.utf8Write?(e.from||(e.from=function(t,r){return new e(t,r)}),e.allocUnsafe||(e.allocUnsafe=function(t){return new e(t)}),e):null}catch(e){return null}}(),s.newBuffer=function(e){return"number"==typeof e?s.Buffer?s.Buffer.allocUnsafe(e):new s.Array(e):s.Buffer?s.Buffer.from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},s.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,s.Long=e.dcodeIO&&e.dcodeIO.Long||s.inquire("long"),s.longToHash=function(e){return e?s.LongBits.from(e).toHash():s.LongBits.zeroHash},s.longFromHash=function(e,t){var r=s.LongBits.fromHash(e);return s.Long?s.Long.fromBits(r.lo,r.hi,t):r.toNumber(!!t)},s.merge=function(e,r,n){for(var i=Object.keys(r),s=0;s-1;--n)if(1===r[e[n]]&&this[e[n]]!==t&&null!==this[e[n]])return e[n]}},s.oneOfSetter=function(e){return function(t){for(var r=0;r127;)t[r++]=127&e|128,e>>>=7;t[r]=e}function f(e,r){this.len=e,this.next=t,this.val=r}function l(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function h(e,t,r){t[r++]=255&e,t[r++]=e>>>8&255,t[r++]=e>>>16&255,t[r]=e>>>24}r.exports=o;var c,p=e(39),d=p.LongBits,y=p.base64,m=p.utf8;o.create=p.Buffer?function(){return c||(c=e(42)),(o.create=function(){return new c})()}:function(){return new o},o.alloc=function(e){return new p.Array(e)},p.Array!==Array&&(o.alloc=p.pool(o.alloc,p.Array.prototype.subarray));var v=o.prototype;v.push=function(e,t,r){return this.tail=this.tail.next=new n(e,t,r),this.len+=t,this},f.prototype=Object.create(n.prototype),f.prototype.fn=a,v.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},v.int32=function(e){return e<0?this.push(l,10,d.fromNumber(e)):this.uint32(e)},v.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},v.uint64=function(e){var t=d.from(e);return this.push(l,t.length(),t)},v.int64=v.uint64,v.sint64=function(e){var t=d.from(e).zzEncode();return this.push(l,t.length(),t)},v.bool=function(e){return this.push(u,1,e?1:0)},v.fixed32=function(e){return this.push(h,4,e>>>0)},v.sfixed32=function(e){return this.push(h,4,e<<1^e>>31)},v.fixed64=function(e){var t=d.from(e);return this.push(h,4,t.lo).push(h,4,t.hi)},v.sfixed64=function(e){var t=d.from(e).zzEncode();return this.push(h,4,t.lo).push(h,4,t.hi)};var g="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(r,n,i){e[0]=r,n[i++]=t[0],n[i++]=t[1],n[i++]=t[2],n[i]=t[3]}:function(r,n,i){e[0]=r,n[i++]=t[3],n[i++]=t[2],n[i++]=t[1],n[i]=t[0]}}():function(e,t,r){var n=e<0?1:0;if(n&&(e=-e),0===e)h(1/e>0?0:2147483648,t,r);else if(isNaN(e))h(2147483647,t,r);else if(e>3.4028234663852886e38)h((n<<31|2139095040)>>>0,t,r);else if(e<1.1754943508222875e-38)h((n<<31|Math.round(e/1.401298464324817e-45))>>>0,t,r);else{var i=Math.floor(Math.log(e)/Math.LN2),s=8388607&Math.round(e*Math.pow(2,-i)*8388608);h((n<<31|i+127<<23|s)>>>0,t,r)}};v.float=function(e){return this.push(g,4,e)};var b="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(r,n,i){e[0]=r,n[i++]=t[0],n[i++]=t[1],n[i++]=t[2],n[i++]=t[3],n[i++]=t[4],n[i++]=t[5],n[i++]=t[6],n[i]=t[7]}:function(r,n,i){e[0]=r,n[i++]=t[7],n[i++]=t[6],n[i++]=t[5],n[i++]=t[4],n[i++]=t[3],n[i++]=t[2],n[i++]=t[1],n[i]=t[0]}}():function(e,t,r){var n=e<0?1:0;if(n&&(e=-e),0===e)h(0,t,r),h(1/e>0?0:2147483648,t,r+4);else if(isNaN(e))h(4294967295,t,r),h(2147483647,t,r+4);else if(e>1.7976931348623157e308)h(0,t,r),h((n<<31|2146435072)>>>0,t,r+4);else{var i;if(e<2.2250738585072014e-308)i=e/5e-324,h(i>>>0,t,r),h((n<<31|i/4294967296)>>>0,t,r+4);else{var s=Math.floor(Math.log(e)/Math.LN2);1024===s&&(s=1023),i=e*Math.pow(2,-s),h(4503599627370496*i>>>0,t,r),h((n<<31|s+1023<<20|1048576*i&1048575)>>>0,t,r+4)}}};v.double=function(e){return this.push(b,8,e)};var w=p.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this.push(u,1,0);if("string"==typeof e){var r=o.alloc(t=y.length(e));y.decode(e,r,0),e=r}return this.uint32(t).push(w,t,e)},v.string=function(e){var t=m.length(e);return t?this.uint32(t).push(m.write,t,e):this.push(u,1,0)},v.fork=function(){return this.states=new s(this),this.head=this.tail=new n(i,0,0),this.len=0,this},v.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(i,0,0),this.len=0),this},v.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},v.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t}},{39:39,42:42}],42:[function(e,t){function r(){i.call(this)}function n(e,t,r){e.length<40?o.utf8.write(e,t,r):t.utf8Write(e,r)}t.exports=r;var i=e(41),s=r.prototype=Object.create(i.prototype);s.constructor=r;var o=e(39),u=o.Buffer;r.alloc=function(e){return(r.alloc=u.allocUnsafe)(e)};var a=u&&u.prototype instanceof Uint8Array&&"set"===u.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this.push(a,t,e),this},s.string=function(e){var t=u.byteLength(e);return this.uint32(t),t&&this.push(n,t,e),this}},{39:39,41:41}]},{},[20])}("object"==typeof window&&window||"object"==typeof self&&self||this); +!function(e,t){"use strict";!function e(t,r,n){function i(o,u){if(!r[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(s)return s(o,!0);var f=Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=r[o]={exports:{}};t[o][0].call(l.exports,function(e){var r=t[o][1][e];return i(r?r:e)},l,l.exports,e,t,r,n)}return r[o].exports}for(var s="function"==typeof require&&require,o=0;o1&&"="===e.charAt(t);)++r;return Math.ceil(3*e.length)/4-r};for(var s=Array(64),o=Array(123),u=0;u<64;)o[s[u]=u<26?u+65:u<52?u+71:u<62?u-4:u-59|43]=u++;i.encode=function(e,t,r){for(var n,i=[],o=0,u=0;t>2],n=(3&a)<<4,u=1;break;case 1:i[o++]=s[n|a>>4],n=(15&a)<<2,u=2;break;case 2:i[o++]=s[n|a>>6],i[o++]=s[63&a],u=0}}return u&&(i[o++]=s[n],i[o]=61,1===u&&(i[o+1]=61)),String.fromCharCode.apply(String,i)};var a="invalid encoding";i.decode=function(e,r,n){for(var i,s=n,u=0,f=0;f1)break;if((l=o[l])===t)throw Error(a);switch(u){case 0:i=l,u=1;break;case 1:r[n++]=i<<2|(48&l)>>4,i=l,u=2;break;case 2:r[n++]=(15&i)<<4|(60&l)>>2,i=l,u=3;break;case 3:r[n++]=(3&i)<<6|l,u=0}}if(1===u)throw Error(a);return n-s},i.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)}},{}],3:[function(e,r){function n(){function e(){for(var t=[],r=0;r ").replace(/\t/g," "));var o=Object.keys(i||(i={}));return Function.apply(null,o.concat("return "+s)).apply(null,o.map(function(e){return i[e]}))}for(var h=[],c=[],p=1,d=!1,y=0;y0?t.splice(--s,2):r?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return n+t.join("/")};n.resolve=function(e,t,r){return r||(t=s(t)),i(t)?t:(r||(e=s(e)),(e=e.replace(/(?:\/|^)[^\/]+$/,"")).length?s(e+"/"+t):t)}},{}],9:[function(e,t){function r(e,t,r){var n=r||8192,i=n>>>1,s=null,o=n;return function(r){if(r<1||r>i)return e(r);o+r>n&&(s=e(n),o=0);var u=t.call(s,o,o+=r);return 7&o&&(o=(7|o)+1),u}}t.exports=r},{}],10:[function(e,t,r){var n=r;n.length=function(e){for(var t=0,r=0,n=0;n191&&i<224?o[u++]=(31&i)<<6|63&e[t++]:i>239&&i<365?(i=((7&i)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[u++]=55296+(i>>10),o[u++]=56320+(1023&i)):o[u++]=(15&i)<<12|(63&e[t++])<<6|63&e[t++],u>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),u=0);return s?(u&&s.push(String.fromCharCode.apply(String,o.slice(0,u))),s.join("")):u?String.fromCharCode.apply(String,o.slice(0,u)):""},n.write=function(e,t,r){for(var n,i,s=r,o=0;o>6|192,t[r++]=63&n|128):55296===(64512&n)&&56320===(64512&(i=e.charCodeAt(o+1)))?(n=65536+((1023&n)<<10)+(1023&i),++o,t[r++]=n>>18|240,t[r++]=n>>12&63|128,t[r++]=n>>6&63|128,t[r++]=63&n|128):(t[r++]=n>>12|224,t[r++]=n>>6&63|128,t[r++]=63&n|128);return r-s}},{}],11:[function(e,t){function r(e){return n(e)}function n(t,n){if(i||(i=e(35)),!(t instanceof i))throw TypeError("type must be a Type");if(n){if("function"!=typeof n)throw TypeError("ctor must be a function")}else n=o.codegen("p")("return ctor.call(this,p)").eof(t.name,{ctor:s});n.constructor=r;var u=n.prototype=new s;return u.constructor=n,o.merge(n,s,!0),n.$type=t,u.$type=t,t.fieldsArray.forEach(function(e){u[e.name]=Array.isArray(e.resolve().defaultValue)?o.emptyArray:o.isObject(e.defaultValue)&&!e.long?o.emptyObject:e.defaultValue}),t.oneofsArray.forEach(function(e){Object.defineProperty(u,e.resolve().name,{get:o.oneOfGetter(e.oneof),set:o.oneOfSetter(e.oneof)})}),t.ctor=n,u}t.exports=r;var i,s=e(22),o=e(37);r.create=n,r.prototype=s},{22:22,35:35,37:37}],12:[function(e,t){function r(e,t){/\/|\./.test(e)||(e="google/protobuf/"+e+".proto",t={nested:{google:{nested:{protobuf:{nested:t}}}}}),r[e]=t}t.exports=r,r("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var n;r("duration",{Duration:n={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),r("timestamp",{Timestamp:n}),r("empty",{Empty:{fields:{}}}),r("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),r("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}})},{}],13:[function(e,t,r){function n(e,t,r,n){if(t.resolvedType)if(t.resolvedType instanceof o){var i=t.resolvedType.values;e("switch(d%s){",n),Object.keys(i).forEach(function(r){t.repeated&&i[r]===t.typeDefault&&e("default:"),e("case%j:",r)("case %j:",i[r])("m%s=%j",n,i[r])("break")}),e("}")}else e('if(typeof d%s!=="object")',n)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%d].fromObject(d%s)",n,r,n);else{var s=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",n,n);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",n,n);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",n,n);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",n,n,s)('else if(typeof d%s==="string")',n)("m%s=parseInt(d%s,10)",n,n)('else if(typeof d%s==="number")',n)("m%s=d%s",n,n)('else if(typeof d%s==="object")',n)("m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)",n,n,n,s?"true":"");break;case"bytes":e('if(typeof d%s==="string")',n)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",n,n,n)("else if(d%s.length)",n)("m%s=d%s",n,n);break;case"string":e("m%s=String(d%s)",n,n);break;case"bool":e("m%s=Boolean(d%s)",n,n)}}return e}function i(e,t,r,n){if(t.resolvedType)t.resolvedType instanceof o?e("d%s=o.enums===String?types[%d].values[m%s]:m%s",n,r,n,n):e("d%s=types[%d].toObject(m%s,o)",n,r,n);else{var i=!1;switch(t.type){case"uint64":i=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',n)("d%s=o.longs===String?String(m%s):m%s",n,n,n)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low,m%s.high).toNumber(%s):m%s",n,n,n,n,i?"true":"",n);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",n,n,n,n,n);break;default:e("d%s=m%s",n,n)}}return e}var s=r,o=e(16),u=e(37);s.fromObject=function(e){var t=e.fieldsArray,r=u.codegen("d")("if(d instanceof this.ctor)")("return d");if(!t.length)return r("return new this.ctor");r("var m=new this.ctor");for(var i=0;i>>3){");for(var a=0;a>>0,(t.id<<3|4)>>>0):e("types[%d].encode(%s,w.uint32(%d).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}function i(e){for(var r,i,a=e.fieldsArray,f=e.oneofsArray,l=u.codegen("m","w")("if(!w)")("w=Writer.create()"),r=0;r>>0,8|o.mapKey[h.keyType],h.keyType),p===t?l("types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",r,i):l(".uint32(%d).%s(%s[ks[i]]).ldelim()",16|p,c,i),l("}")("}")):h.repeated?h.packed&&o.packed[c]!==t?l("if(%s&&%s.length&&m.hasOwnProperty(%j)){",i,i,h.name)("w.uint32(%d).fork()",(h.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",i)("w.%s(%s[i])",c,i)("w.ldelim()")("}"):(l("if(%s!==undefined&&m.hasOwnProperty(%j)){",i,h.name)("for(var i=0;i<%s.length;++i)",i),p===t?n(l,h,r,i+"[i]"):l("w.uint32(%d).%s(%s[i])",(h.id<<3|p)>>>0,c,i),l("}")):(h.required||(h.long?l("if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))",i,i,h.name):h.bytes?l("if(%s&&m.hasOwnProperty(%j))",i,h.name):l("if(%s!==undefined&&m.hasOwnProperty(%j))",i,h.name)),p===t?n(l,h,r,i):l("w.uint32(%d).%s(%s)",(h.id<<3|p)>>>0,c,i))}}for(var r=0;r>>0,c,i),l("break")}l("}")}return l("return w")}r.exports=i;var s=e(16),o=e(36),u=e(37)},{16:16,36:36,37:37}],16:[function(e,r){function n(e,t,r){i.call(this,e,r),this.valuesById={},this.values=Object.create(this.valuesById),this.comments={};var n=this;Object.keys(t||{}).forEach(function(e){n.valuesById[n.values[e]=t[e]]=e})}r.exports=n;var i=e(25),s=i.extend(n);n.className="Enum";var o=e(37);n.testJSON=function(e){return!(!e||!e.values)},n.fromJSON=function(e,t){return new n(e,t.values,t.options)},s.toJSON=function(){return{options:this.options,values:this.values}},s.add=function(e,r,n){if(!o.isString(e))throw TypeError("name must be a string");if(!o.isInteger(r))throw TypeError("id must be an integer");if(this.values[e]!==t)throw Error("duplicate name");if(this.valuesById[r]!==t)throw Error("duplicate id");return this.valuesById[this.values[e]=r]=e,this.comments[e]=n||null,this},s.remove=function(e){if(!o.isString(e))throw TypeError("name must be a string");var r=this.values[e];if(r===t)throw Error("name does not exist");return delete this.valuesById[r],delete this.values[e],delete this.comments[e],this}},{25:25,37:37}],17:[function(e,r){function n(e,r,n,s,o,u){if(l.isObject(s)?(u=s,s=o=t):l.isObject(o)&&(u=o,o=t),i.call(this,e,u),!l.isInteger(r)||r<0)throw TypeError("id must be a non-negative integer");if(!l.isString(n))throw TypeError("type must be a string");if(s!==t&&!/^required|optional|repeated$/.test(s=(""+s).toLowerCase()))throw TypeError("rule must be a string rule");if(o!==t&&!l.isString(o))throw TypeError("extend must be a string");this.rule=s&&"optional"!==s?s:t,this.type=n,this.id=r,this.extend=o||t,this.required="required"===s,this.optional=!this.required,this.repeated="repeated"===s,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!l.Long&&f.long[n]!==t,this.bytes="bytes"===n,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this.b=null}r.exports=n;var i=e(25),s=i.extend(n);n.className="Field";var o,u,a=e(16),f=e(36),l=e(37);Object.defineProperty(s,"packed",{get:function(){return null===this.b&&(this.b=this.getOption("packed")!==!1),this.b}}),s.setOption=function(e,t,r){return"packed"===e&&(this.b=null),i.prototype.setOption.call(this,e,t,r)},n.testJSON=function(e){return!(!e||e.id===t)},n.fromJSON=function(r,i){return i.keyType!==t?(u||(u=e(21)),u.fromJSON(r,i)):new n(r,i.id,i.type,i.rule,i.extend,i.options)},s.toJSON=function(){return{rule:"optional"!==this.rule&&this.rule||t,type:this.type,id:this.id,extend:this.extend,options:this.options}},s.resolve=function(){if(this.resolved)return this;if((this.typeDefault=f.defaults[this.type])===t)if(o||(o=e(35)),this.resolvedType=this.parent.lookup(this.type,o))this.typeDefault=null;else{if(!(this.resolvedType=this.parent.lookup(this.type,a)))throw Error("unresolvable field type: "+this.type);this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]}if(this.options&&this.options.default!==t&&(this.typeDefault=this.options.default,this.resolvedType instanceof a&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.long)this.typeDefault=l.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var r;l.base64.test(this.typeDefault)?l.base64.decode(this.typeDefault,r=l.newBuffer(l.base64.length(this.typeDefault)),0):l.utf8.write(this.typeDefault,r=l.newBuffer(l.utf8.length(this.typeDefault)),0),this.typeDefault=r}return this.map?this.defaultValue=l.emptyObject:this.repeated?this.defaultValue=l.emptyArray:this.defaultValue=this.typeDefault,i.prototype.resolve.call(this)}},{16:16,21:21,25:25,35:35,36:36,37:37}],18:[function(e,t){function r(e,t,r){return"function"==typeof t?(r=t,t=new i.Root):t||(t=new i.Root),t.load(e,r)}function n(e,t){return t||(t=new i.Root),t.loadSync(e)}var i=t.exports=e(19);i.build="light",i.load=r,i.loadSync=n,i.encoder=e(15),i.decoder=e(14),i.verifier=e(40),i.converter=e(13),i.ReflectionObject=e(25),i.Namespace=e(24),i.Root=e(30),i.Enum=e(16),i.Type=e(35),i.Field=e(17),i.OneOf=e(26),i.MapField=e(21),i.Service=e(33),i.Method=e(23),i.Class=e(11),i.Message=e(22),i.types=e(36),i.util=e(37)},{11:11,13:13,14:14,15:15,16:16,17:17,19:19,21:21,22:22,23:23,24:24,25:25,26:26,30:30,33:33,35:35,36:36,37:37,40:40}],19:[function(t,r,n){function i(){s.Reader.c()}var s=e.protobuf=n;s.build="minimal",s.roots={},s.Writer=t(41),s.BufferWriter=t(42),s.Reader=t(28),s.BufferReader=t(29),s.util=t(39),s.rpc=t(31),s.configure=i,"function"==typeof define&&define.amd&&define(["long"],function(e){return e&&(s.util.Long=e,i()),s})},{28:28,29:29,31:31,39:39,41:41,42:42}],20:[function(e,t){var r=t.exports=e(18);r.build="full",r.tokenize=e(34),r.parse=e(27),r.common=e(12),r.Root.c(r.parse,r.common)},{12:12,18:18,27:27,34:34}],21:[function(e,r){function n(e,t,r,n,s){if(i.call(this,e,t,n,s),!a.isString(r))throw TypeError("keyType must be a string");this.keyType=r,this.resolvedKeyType=null,this.map=!0}r.exports=n;var i=e(17),s=i.prototype,o=i.extend(n);n.className="MapField";var u=e(36),a=e(37);n.testJSON=function(e){return i.testJSON(e)&&e.keyType!==t},n.fromJSON=function(e,t){return new n(e,t.id,t.keyType,t.type,t.options)},o.toJSON=function(){return{keyType:this.keyType,type:this.type,id:this.id,extend:this.extend,options:this.options}},o.resolve=function(){if(this.resolved)return this;if(u.mapKey[this.keyType]===t)throw Error("invalid key type: "+this.keyType);return s.resolve.call(this)}},{17:17,36:36,37:37}],22:[function(e,t){function r(e){if(e)for(var t=Object.keys(e),r=0;r0;){var n=e.shift();if(r.nested&&r.nested[n]){if(r=r.nested[n],!(r instanceof s))throw Error("path conflicts with non-namespace objects")}else r.add(r=new s(n))}return t&&r.addJSON(t),r},a.resolveAll=function(){for(var e=this.nestedArray,t=0;t-1&&this.oneof.splice(t,1),e.partOf=null,this},o.onAdd=function(e){s.prototype.onAdd.call(this,e);var t=this;this.oneof.forEach(function(r){var n=e.get(r);n&&!n.partOf&&(n.partOf=t,t.g.push(n))}),i(this)},o.onRemove=function(e){this.g.forEach(function(e){e.parent&&e.parent.remove(e)}),s.prototype.onRemove.call(this,e)}},{17:17,25:25}],27:[function(e,r){function n(e){return/^[a-zA-Z_][a-zA-Z_0-9]*$/.test(e)}function i(e){return/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(e)}function s(e){return/^(?:\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(e)}function o(e){return null===e?null:e.toLowerCase()}function u(e){return e.substring(0,1)+e.substring(1).replace(/_([a-z])(?=[a-z]|$)/g,function(e,t){return t.toUpperCase()})}function a(e,r,w){function O(e,t){var r=a.filename;return a.filename=null,Error("illegal "+(t||"token")+" '"+e+"' ("+(r?r+", ":"")+"line "+G.line()+")")}function k(){var e,t=[];do{if('"'!==(e=X())&&"'"!==e)throw O(e);t.push(X()),ee(e),e=Y()}while('"'===e||"'"===e);return t.join("")}function j(e){var t=X();switch(o(t)){case"'":case'"':return Q(t),k();case"true":return!0;case"false":return!1}try{return S(t)}catch(r){if(e&&i(t))return t;throw O(t,"value")}}function x(){var e=A(X()),t=e;return ee("to",!0)&&(t=A(X())),ee(";"),[e,t]}function S(e){var t=1;"-"===e.charAt(0)&&(t=-1,e=e.substring(1));var r=o(e);switch(r){case"inf":return t*(1/0);case"nan":return NaN;case"0":return 0}if(/^[1-9][0-9]*$/.test(e))return t*parseInt(e,10);if(/^0[x][0-9a-f]+$/.test(r))return t*parseInt(e,16);if(/^0[0-7]+$/.test(e))return t*parseInt(e,8);if(/^(?!e)[0-9]*(?:\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(r))return t*parseFloat(e);throw O(e,"number")}function A(e,t){var r=o(e);switch(r){case"max":return 536870911;case"0":return 0}if("-"===e.charAt(0)&&!t)throw O(e,"id");if(/^-?[1-9][0-9]*$/.test(e))return parseInt(e,10);if(/^-?0[x][0-9a-f]+$/.test(r))return parseInt(e,16);if(/^-?0[0-7]+$/.test(e))return parseInt(e,8);throw O(e,"id")}function T(){if(H!==t)throw O("package");if(H=X(),!i(H))throw O(H,"name");ie=ie.define(H),ee(";")}function N(){var e,t=Y();switch(t){case"weak":e=Z||(Z=[]),X();break;case"public":X();default:e=_||(_=[])}t=k(),ee(";"),e.push(t)}function E(){if(ee("="),W=o(k()),ne="proto3"===W,!ne&&"proto2"!==W)throw O(W,"syntax");ee(";")}function J(e,t){switch(t){case"option":return $(e,t),ee(";"),!0;case"message":return D(e,t),!0;case"enum":return B(e,t),!0;case"service":return C(e,t),!0;case"extend":return U(e,t),!0}return!1}function D(e,t){var r=X();if(!n(r))throw O(r,"type name");var s=new h(r);if(s.comment=te(),ee("{",!0)){for(;"}"!==(t=X());){var u=o(t);if(!J(s,t))switch(u){case"map":q(s,u);break;case"required":case"optional":case"repeated":L(s,u);break;case"oneof":z(s,u);break;case"extensions":(s.extensions||(s.extensions=[])).push(x(s,u));break;case"reserved":(s.reserved||(s.reserved=[])).push(x(s,u));break;default:if(!ne||!i(t))throw O(t);Q(t),L(s,"optional")}}ee(";",!0)}else ee(";");e.add(s)}function L(e,r,s){var o=X();if("group"===o)return I(e,r),t;if(!i(o))throw O(o,"type"); +var u=X();if(!n(u))throw O(u,"name");u=se(u),ee("=");var a=new c(u,A(X()),o,r,s),f=G.line();a.comment=te(),R(a),a.comment||(a.comment=te(f)),a.repeated&&g.packed[o]!==t&&!ne&&a.setOption("packed",!1,!0),e.add(a)}function I(e,t){var r=X();if(!n(r))throw O(r,"name");var i=b.lcFirst(r);r===i&&(r=b.ucFirst(r)),ee("=");var s=A(X()),u=new h(r);u.group=!0,u.comment=te();var a=new c(i,s,r,t);for(ee("{");"}"!==(K=X());)switch(K=o(K)){case"option":$(u,K),ee(";");break;case"required":case"optional":case"repeated":L(u,K);break;default:throw O(K)}ee(";",!0),e.add(u).add(a)}function q(e){ee("<");var r=X();if(g.mapKey[r]===t)throw O(r,"type");ee(",");var s=X();if(!i(s))throw O(s,"type");ee(">");var o=X();if(!n(o))throw O(o,"name");o=se(o),ee("=");var u=new p(o,A(X()),r,s),a=G.line();u.comment=te(),R(u),u.comment||(u.comment=te(a)),e.add(u)}function z(e,t){var r=X();if(!n(r))throw O(r,"name");r=se(r);var i=new d(r),s=G.line();if(i.comment=te(),ee("{",!0)){for(;"}"!==(t=X());)"option"===t?($(i,t),ee(";")):(Q(t),L(i,"optional"));ee(";",!0)}else ee(";"),i.comment||(i.comment=te(s));e.add(i)}function B(e,t){var r=X();if(!n(r))throw O(r,"name");var i=new y(r);if(i.comment=te(),ee("{",!0)){for(;"}"!==(t=X());)"option"===o(t)?($(i,t),ee(";")):F(i,t);ee(";",!0)}else ee(";");e.add(i)}function F(e,t){if(!n(t))throw O(t,"name");var r=t;ee("=");var i=A(X(),!0),s=G.line();e.add(r,i,te()),R({}),e.comments[r]||(e.comments[r]=te(s))}function $(e,t){var r=ee("(",!0),n=X();if(!i(n))throw O(n,"name");r&&(ee(")"),n="("+n+")",t=Y(),s(t)&&(n+=t,X())),ee("="),V(e,n)}function V(e,t){if(ee("{",!0)){do{if(!n(K=X()))throw O(K,"name");"{"===Y()?V(e,t+"."+K):(ee(":"),P(e,t+"."+K,j(!0)))}while(!ee("}",!0))}else P(e,t,j(!0))}function P(e,t,r){e.setOption&&e.setOption(t,r)}function R(e){if(ee("[",!0)){do $(e,"option");while(ee(",",!0));ee("]")}return ee(";"),e}function C(e,t){if(t=X(),!n(t))throw O(t,"service name");var r=t,i=new m(r);if(i.comment=te(),ee("{",!0)){for(;"}"!==(t=X());){var s=o(t);switch(s){case"option":$(i,s),ee(";");break;case"rpc":M(i,s);break;default:throw O(t)}}ee(";",!0)}else ee(";");e.add(i)}function M(e,t){var r=t,s=X();if(!n(s))throw O(s,"name");var u,a,f,l;if(ee("("),ee("stream",!0)&&(a=!0),!i(t=X()))throw O(t);if(u=t,ee(")"),ee("returns"),ee("("),ee("stream",!0)&&(l=!0),!i(t=X()))throw O(t);f=t,ee(")");var h=new v(s,r,u,f,a,l),c=G.line();if(h.comment=te(),ee("{",!0)){for(;"}"!==(t=X());){var p=o(t);switch(p){case"option":$(h,p),ee(";");break;default:throw O(t)}}ee(";",!0)}else ee(";"),h.comment||(h.comment=te(c));e.add(h)}function U(e,t){var r=X();if(!i(r))throw O(r,"reference");if(ee("{",!0)){for(;"}"!==(t=X());){var n=o(t);switch(n){case"required":case"repeated":case"optional":L(e,n,r);break;default:if(!ne||!i(t))throw O(t);Q(t),L(e,"optional",r)}}ee(";",!0)}else ee(";")}r instanceof l||(w=r,r=new l),w||(w=a.defaults);for(var H,_,Z,W,K,G=f(e),X=G.next,Q=G.push,Y=G.peek,ee=G.skip,te=G.cmnt,re=!0,ne=!1,ie=r,se=w.keepCase?function(e){return e}:u;null!==(K=X());){var oe=o(K);switch(oe){case"package":if(!re)throw O(K);T();break;case"import":if(!re)throw O(K);N();break;case"syntax":if(!re)throw O(K);E();break;case"option":if(!re)throw O(K);$(ie,K),ee(";");break;default:if(J(ie,K)){re=!1;continue}throw O(K)}}return a.filename=null,{package:H,imports:_,weakImports:Z,syntax:W,root:r}}r.exports=a,a.filename=null,a.defaults={keepCase:!1};var f=e(34),l=e(30),h=e(35),c=e(17),p=e(21),d=e(26),y=e(16),m=e(33),v=e(23),g=e(36),b=e(37)},{16:16,17:17,21:21,23:23,26:26,30:30,33:33,34:34,35:35,36:36,37:37}],28:[function(e,t){function r(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function n(e){this.buf=e,this.pos=0,this.len=e.length}function i(){var e=new w(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw r(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw r(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function s(){return i.call(this).toLong()}function o(){return i.call(this).toNumber()}function u(){return i.call(this).toLong(!0)}function a(){return i.call(this).toNumber(!0)}function f(){return i.call(this).zzDecode().toLong()}function l(){return i.call(this).zzDecode().toNumber()}function h(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function c(){if(this.pos+8>this.len)throw r(this,8);return new w(h(this.buf,this.pos+=4),h(this.buf,this.pos+=4))}function p(){return c.call(this).toLong(!0)}function d(){return c.call(this).toNumber(!0)}function y(){return c.call(this).zzDecode().toLong()}function m(){return c.call(this).zzDecode().toNumber()}function v(){b.Long?(k.int64=s,k.uint64=u,k.sint64=f,k.fixed64=p,k.sfixed64=y):(k.int64=o,k.uint64=a,k.sint64=l,k.fixed64=d,k.sfixed64=m)}t.exports=n;var g,b=e(39),w=b.LongBits,O=b.utf8;n.create=b.Buffer?function(t){return g||(g=e(29)),(n.create=function(e){return b.Buffer.isBuffer(e)?new g(e):new n(e)})(t)}:function(e){return new n(e)};var k=n.prototype;k.h=b.Array.prototype.subarray||b.Array.prototype.slice,k.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return e}}(),k.int32=function(){return 0|this.uint32()},k.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},k.bool=function(){return 0!==this.uint32()},k.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return h(this.buf,this.pos+=4)},k.sfixed32=function(){var e=this.fixed32();return e>>>1^-(1&e)};var j="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(r,n){return t[0]=r[n],t[1]=r[n+1],t[2]=r[n+2],t[3]=r[n+3],e[0]}:function(r,n){return t[3]=r[n],t[2]=r[n+1],t[1]=r[n+2],t[0]=r[n+3],e[0]}}():function(e,t){var r=h(e,t+4),n=2*(r>>31)+1,i=r>>>23&255,s=8388607&r;return 255===i?s?NaN:n*(1/0):0===i?1.401298464324817e-45*n*s:n*Math.pow(2,i-150)*(s+8388608)};k.float=function(){if(this.pos+4>this.len)throw r(this,4);var e=j(this.buf,this.pos);return this.pos+=4,e};var x="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(r,n){return t[0]=r[n],t[1]=r[n+1],t[2]=r[n+2],t[3]=r[n+3],t[4]=r[n+4],t[5]=r[n+5],t[6]=r[n+6],t[7]=r[n+7],e[0]}:function(r,n){return t[7]=r[n],t[6]=r[n+1],t[5]=r[n+2],t[4]=r[n+3],t[3]=r[n+4],t[2]=r[n+5],t[1]=r[n+6],t[0]=r[n+7],e[0]}}():function(e,t){var r=h(e,t+4),n=h(e,t+8),i=2*(n>>31)+1,s=n>>>20&2047,o=4294967296*(1048575&n)+r;return 2047===s?o?NaN:i*(1/0):0===s?5e-324*i*o:i*Math.pow(2,s-1075)*(o+4503599627370496)};k.double=function(){if(this.pos+8>this.len)throw r(this,4);var e=x(this.buf,this.pos);return this.pos+=8,e},k.bytes=function(){var e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw r(this,e);return this.pos+=e,t===n?new this.buf.constructor(0):this.h.call(this.buf,t,n)},k.string=function(){var e=this.bytes();return O.read(e,0,e.length)},k.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw r(this,e);this.pos+=e}else do if(this.pos>=this.len)throw r(this);while(128&this.buf[this.pos++]);return this},k.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4===(e=7&this.uint32()))break;this.skipType(e)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},n.c=v,v()},{29:29,39:39}],29:[function(e,t){function r(e){n.call(this,e)}t.exports=r;var n=e(28),i=r.prototype=Object.create(n.prototype);i.constructor=r;var s=e(39);s.Buffer&&(i.h=s.Buffer.prototype.slice),i.string=function(){var e=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len))}},{28:28,39:39}],30:[function(e,r){function n(e){o.call(this,"",e),this.deferred=[],this.files=[]}function i(){}function s(e){var r=e.parent.lookup(e.extend);if(r){var n=new l(e.fullName,e.id,e.type,e.rule,t,e.options);return n.declaringField=e,e.extensionField=n,r.add(n),!0}return!1}r.exports=n;var o=e(24),u=o.extend(n);n.className="Root";var a,f,l=e(17),h=e(16),c=e(37);n.fromJSON=function(e,t){return t||(t=new n),t.setOptions(e.options).addJSON(e.nested)},u.resolvePath=c.path.resolve,u.load=function e(r,n,s){function o(e,t){if(s){var r=s;if(s=null,p)throw e;r(e,t)}}function u(e,t){try{if(c.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),c.isString(t)){a.filename=e;var r=a(t,h,n);r.imports&&r.imports.forEach(function(t){l(h.resolvePath(e,t))}),r.weakImports&&r.weakImports.forEach(function(t){l(h.resolvePath(e,t),!0)})}else h.setOptions(t.options).addJSON(t.nested)}catch(e){o(e)}p||d||o(null,h)}function l(e,r){var n=e.lastIndexOf("google/protobuf/");if(n>-1){var i=e.substring(n);i in f&&(e=i)}if(!(h.files.indexOf(e)>-1)){if(h.files.push(e),e in f)return p?u(e,f[e]):(++d,setTimeout(function(){--d,u(e,f[e])})),t;if(p){var a;try{a=c.fs.readFileSync(e).toString("utf8")}catch(e){return r||o(e),t}u(e,a)}else++d,c.fetch(e,function(n,i){if(--d,s)return n?(r?d||o(null,h):o(n),t):(u(e,i),t)})}}"function"==typeof n&&(s=n,n=t);var h=this;if(!s)return c.asPromise(e,h,r);var p=s===i,d=0;return c.isString(r)&&(r=[r]),r.forEach(function(e){l(h.resolvePath("",e))}),p?h:(d||o(null,h),t)},u.loadSync=function(e,t){if(!c.isNode)throw Error("not supported");return this.load(e,t,i)},u.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return o.prototype.resolveAll.call(this)};var p=/^[A-Z]/;u.e=function(e){var r=this.deferred.slice();this.deferred=[];for(var n=0;n-1&&this.deferred.splice(r,1)}e.extensionField&&(e.extensionField.parent.remove(e.extensionField),e.extensionField=null)}else if(e instanceof o){for(var n=e.nestedArray,i=0;i0)return w.shift();if(O)return i();var t,n,o,u,l;do{if(d===y)return null;for(t=!1;/\s/.test(o=a(d));)if("\n"===o&&++m,++d===y)return null;if("/"===a(d)){if(++d===y)throw r("comment");if("/"===a(d)){for(l="/"===a(u=d+1);"\n"!==a(++d);)if(d===y)return null;++d,l&&f(u,d-1),++m,t=!0}else{if("*"!==(o=a(d)))return"/";l="*"===a(u=d+1);do{if("\n"===o&&++m,++d===y)throw r("comment");n=o,o=a(d)}while("*"!==n||"/"!==o);++d,l&&f(u,d-2),t=!0}}}while(t);var h=d;s.lastIndex=0;var c=s.test(a(h++));if(!c)for(;h]/g,o=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,u=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g;n.map={0:"\0",r:"\r",n:"\n",t:"\t"},i.unescape=n},{}],35:[function(e,r){function n(e,r){s.call(this,e,r),this.fields={},this.oneofs=t,this.extensions=t,this.reserved=t,this.group=t,this.j=null,this.g=null,this.k=null,this.l=null}function i(e){return e.j=e.g=e.k=e.l=null,delete e.encode,delete e.decode,delete e.verify,e}r.exports=n;var s=e(24),o=s.prototype,u=s.extend(n);n.className="Type";var a=e(16),f=e(26),l=e(17),h=e(33),c=e(11),p=e(22),d=e(28),y=e(41),m=e(37),v=e(15),g=e(14),b=e(40),w=e(13),O=[a,n,l,h];n.testJSON=function(e){return!(!e||!e.fields)},n.fromJSON=function(e,r){var i=new n(e,r.options);return i.extensions=r.extensions,i.reserved=r.reserved,Object.keys(r.fields).forEach(function(e){i.add(l.fromJSON(e,r.fields[e]))}),r.oneofs&&Object.keys(r.oneofs).forEach(function(e){i.add(f.fromJSON(e,r.oneofs[e]))}),r.nested&&Object.keys(r.nested).forEach(function(e){for(var n=r.nested[e],s=0;s>>0,i=(e-n)/4294967296>>>0;return t&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new r(n,i)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if("string"==typeof e){if(!n.Long)return r.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):s},i.toNumber=function(e){if(!e&&this.hi>>>31){var t=~this.lo+1>>>0,r=~this.hi>>>0;return t||(r=r+1>>>0),-(t+4294967296*r)}return this.lo+4294967296*this.hi},i.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,(!!e)):{low:0|this.lo,high:0|this.hi,unsigned:!!e}};var u=String.prototype.charCodeAt;r.fromHash=function(e){return e===o?s:new r((u.call(e,0)|u.call(e,1)<<8|u.call(e,2)<<16|u.call(e,3)<<24)>>>0,(u.call(e,4)|u.call(e,5)<<8|u.call(e,6)<<16|u.call(e,7)<<24)>>>0)},i.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},i.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},i.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return 0===r?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:r<128?9:10}},{39:39}],39:[function(r,n,i){var s=i;s.asPromise=r(1),s.base64=r(2),s.EventEmitter=r(4),s.inquire=r(7),s.utf8=r(10),s.pool=r(9),s.LongBits=r(38),s.emptyArray=Object.freeze?Object.freeze([]):[],s.emptyObject=Object.freeze?Object.freeze({}):{},s.isNode=!!(e.process&&e.process.versions&&e.process.versions.node),s.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},s.isString=function(e){return"string"==typeof e||e instanceof String},s.isObject=function(e){return e&&"object"==typeof e},s.Buffer=function(){try{var e=s.inquire("buffer").Buffer;return e.prototype.utf8Write?(e.from||(e.from=function(t,r){return new e(t,r)}),e.allocUnsafe||(e.allocUnsafe=function(t){return new e(t)}),e):null}catch(e){return null}}(),s.newBuffer=function(e){return"number"==typeof e?s.Buffer?s.Buffer.allocUnsafe(e):new s.Array(e):s.Buffer?s.Buffer.from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},s.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,s.Long=e.dcodeIO&&e.dcodeIO.Long||s.inquire("long"),s.longToHash=function(e){return e?s.LongBits.from(e).toHash():s.LongBits.zeroHash},s.longFromHash=function(e,t){var r=s.LongBits.fromHash(e);return s.Long?s.Long.fromBits(r.lo,r.hi,t):r.toNumber(!!t)},s.merge=function(e,r,n){for(var i=Object.keys(r),s=0;s-1;--n)if(1===r[e[n]]&&this[e[n]]!==t&&null!==this[e[n]])return e[n]}},s.oneOfSetter=function(e){return function(t){for(var r=0;r127;)t[r++]=127&e|128,e>>>=7;t[r]=e}function f(e,r){this.len=e,this.next=t,this.val=r}function l(e,t,r){for(;e.hi;)t[r++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=127&e.lo|128,e.lo=e.lo>>>7;t[r++]=e.lo}function h(e,t,r){t[r++]=255&e,t[r++]=e>>>8&255,t[r++]=e>>>16&255,t[r]=e>>>24}r.exports=o;var c,p=e(39),d=p.LongBits,y=p.base64,m=p.utf8;o.create=p.Buffer?function(){return c||(c=e(42)),(o.create=function(){return new c})()}:function(){return new o},o.alloc=function(e){return new p.Array(e)},p.Array!==Array&&(o.alloc=p.pool(o.alloc,p.Array.prototype.subarray));var v=o.prototype;v.push=function(e,t,r){return this.tail=this.tail.next=new n(e,t,r),this.len+=t,this},f.prototype=Object.create(n.prototype),f.prototype.fn=a,v.uint32=function(e){return this.len+=(this.tail=this.tail.next=new f((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},v.int32=function(e){return e<0?this.push(l,10,d.fromNumber(e)):this.uint32(e)},v.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},v.uint64=function(e){var t=d.from(e);return this.push(l,t.length(),t)},v.int64=v.uint64,v.sint64=function(e){var t=d.from(e).zzEncode();return this.push(l,t.length(),t)},v.bool=function(e){return this.push(u,1,e?1:0)},v.fixed32=function(e){return this.push(h,4,e>>>0)},v.sfixed32=function(e){return this.push(h,4,e<<1^e>>31)},v.fixed64=function(e){var t=d.from(e);return this.push(h,4,t.lo).push(h,4,t.hi)},v.sfixed64=function(e){var t=d.from(e).zzEncode();return this.push(h,4,t.lo).push(h,4,t.hi)};var g="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(r,n,i){e[0]=r,n[i++]=t[0],n[i++]=t[1],n[i++]=t[2],n[i]=t[3]}:function(r,n,i){e[0]=r,n[i++]=t[3],n[i++]=t[2],n[i++]=t[1],n[i]=t[0]}}():function(e,t,r){var n=e<0?1:0;if(n&&(e=-e),0===e)h(1/e>0?0:2147483648,t,r);else if(isNaN(e))h(2147483647,t,r);else if(e>3.4028234663852886e38)h((n<<31|2139095040)>>>0,t,r);else if(e<1.1754943508222875e-38)h((n<<31|Math.round(e/1.401298464324817e-45))>>>0,t,r);else{var i=Math.floor(Math.log(e)/Math.LN2),s=8388607&Math.round(e*Math.pow(2,-i)*8388608);h((n<<31|i+127<<23|s)>>>0,t,r)}};v.float=function(e){return this.push(g,4,e)};var b="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(r,n,i){e[0]=r,n[i++]=t[0],n[i++]=t[1],n[i++]=t[2],n[i++]=t[3],n[i++]=t[4],n[i++]=t[5],n[i++]=t[6],n[i]=t[7]}:function(r,n,i){e[0]=r,n[i++]=t[7],n[i++]=t[6],n[i++]=t[5],n[i++]=t[4],n[i++]=t[3],n[i++]=t[2],n[i++]=t[1],n[i]=t[0]}}():function(e,t,r){var n=e<0?1:0;if(n&&(e=-e),0===e)h(0,t,r),h(1/e>0?0:2147483648,t,r+4);else if(isNaN(e))h(4294967295,t,r),h(2147483647,t,r+4);else if(e>1.7976931348623157e308)h(0,t,r),h((n<<31|2146435072)>>>0,t,r+4);else{var i;if(e<2.2250738585072014e-308)i=e/5e-324,h(i>>>0,t,r),h((n<<31|i/4294967296)>>>0,t,r+4);else{var s=Math.floor(Math.log(e)/Math.LN2);1024===s&&(s=1023),i=e*Math.pow(2,-s),h(4503599627370496*i>>>0,t,r),h((n<<31|s+1023<<20|1048576*i&1048575)>>>0,t,r+4)}}};v.double=function(e){return this.push(b,8,e)};var w=p.Array.prototype.set?function(e,t,r){t.set(e,r)}:function(e,t,r){for(var n=0;n>>0;if(!t)return this.push(u,1,0);if("string"==typeof e){var r=o.alloc(t=y.length(e));y.decode(e,r,0),e=r}return this.uint32(t).push(w,t,e)},v.string=function(e){var t=m.length(e);return t?this.uint32(t).push(m.write,t,e):this.push(u,1,0)},v.fork=function(){return this.states=new s(this),this.head=this.tail=new n(i,0,0),this.len=0,this},v.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new n(i,0,0),this.len=0),this},v.ldelim=function(){var e=this.head,t=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=e.next,this.tail=t,this.len+=r),this},v.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),r=0;e;)e.fn(e.val,t,r),r+=e.len,e=e.next;return t}},{39:39,42:42}],42:[function(e,t){function r(){i.call(this)}function n(e,t,r){e.length<40?o.utf8.write(e,t,r):t.utf8Write(e,r)}t.exports=r;var i=e(41),s=r.prototype=Object.create(i.prototype);s.constructor=r;var o=e(39),u=o.Buffer;r.alloc=function(e){return(r.alloc=u.allocUnsafe)(e)};var a=u&&u.prototype instanceof Uint8Array&&"set"===u.prototype.set.name?function(e,t,r){t.set(e,r)}:function(e,t,r){if(e.copy)e.copy(t,r,0,e.length);else for(var n=0;n>>0;return this.uint32(t),t&&this.push(a,t,e),this},s.string=function(e){var t=u.byteLength(e);return this.uint32(t),t&&this.push(n,t,e),this}},{39:39,41:41}]},{},[20])}("object"==typeof window&&window||"object"==typeof self&&self||this); //# sourceMappingURL=protobuf.min.js.map diff --git a/dist/protobuf.min.js.gz b/dist/protobuf.min.js.gz index c282d501dfa392e09e7897d72300169a2d68fedd..1ba5157bdd340791284c42d159262097b3ddeff7 100644 GIT binary patch delta 18961 zcmV(jK=!}PlmX|I0g!}$BuPi-X*>>o{pCx8`J6A9P=Hy9C6j?(v*3%Lzv>NpUlw_# zm|r)jim^0UYrRovzkkE^y1I@QAnpI-WL1fU=B2=l zYO+O!wbGI=G@7()0mGU~D#*5la9q-gZ21bG$XPjeBW*|Ta~b4+8SKS5gEyFg+O%16LlV8kpg_%D$Gelo)-P3sLG|#l?lbh_)mOhh|N8CASHHad=GCt+ze03X8(u|b^v<^I&rK<{ zO1E`AG5XI2^JtNO7X>b&W{K`iZ5<}v+zXZ2Y)(a%OvFVl zZ>n1+wDP=(j5d{8<91;t!f@_fz_XKq7bw_=;I%Aoxnj6~l`5zr+lE2caNtu;-~$-M zlo1862`dz9HPS{SnZ*WGr@=NV6wOPVAAX9 zN2AO5^b}=(;A$XQtaJIf#+pn>7)o#07r9wMM zzF%C7Xa%mmmMs70#G=M~RIvl(kwuQrEOr9eNf$f0hdrLt7BB`0bE9DG)2=c;Z}Bba zJR8R}1|Rsf*gy!OKWoXwO|*iz{t}$?Wx4dxR7$)}%)!;uVR5p7ueps$(k!_447Y(%wfpxZ+ zc}OpYlyVxc$+XDAaFgbKetH^)VAlQgq!|k`#TJ(?p<0u4d3w6qW5H6dXP06^OHbi{ z;lv(GZg<55Y7!9{y3!~V-bV|!LqRC3yQhoy(*7_DF`J?Qg)EY6Q{)SV`?EJ!AKrd4 z@83}L7LgPo5+aPkb@Z;}0wZeXB-ma7@uGpjn1t|IqrJESOUlU>mDlgsLU&G0Tihjh zM?0G<$S0*?L*}e_&*XKf;7nbVLX`!7q+WT0QLonvOv>Ic5y04pR(plt^lxq{x(pE6 z!>+W^KLD5$Qf9BL9??J9ox* A+CX`}j^M(wWm%LtT!LkXh>38WHoh;f^5@NpId z9NG@x-u4e`6ORk?vB_fVS9%BjyZcCVuJ1?Z9YklVr!^H=k40e1tmyiegZ%%0>7?c> z6I7IConUx`XUo+)H78)s{XR{#Y|58#C-anznRrn^Ld|ESw97TNDh!IWl9)d?dqxNhyoaWSo4DIz~JQSdUtgV%VvcD zCeW<1z6IHWyMs8=TvUtzB)IwzlIdjn$<8o!3SC|IA@djq!#RXfU6MrQA@#6V+T5o=Tf@>U8ddjV^R9n)T zq|IDmVdIlB(kZ%5QD+l#**fF}SzQXF+?~>38)zHFO{ei}6&sn1jx6HO25~yD07F!% z-7Xn)=TqrUA48xvU{v-C`x6wDxT${*4UQ{ML0~sE;FlXFF#7iEUl42p=8B0WCLbw= z44cLSzRt~UrNn4|r4Rup#c52>({u3E`C*vd_ZHbg(ek%0=)f_uS7g*ZwJ8DsA%JWX z2l@gZdb{00aFPa0h!22HX=^~nBAtj5E~1_sYw27isVQV!eSWRVqSEZ|TG^}q4(fGE z_B|<8KqyLin-~1AL%M^L^XkfUApL`;q`ysQ-GC>Jact3l(b#~f%s4iV$q<^DK1pOc zQft1_n1lwQbF~~yRHsCsC_<(R&eVLWE(cTXOIfd{Xab?JhbULvREk=XS@K5b?gA0)g3c zXfn~?1fD*BRNK1l1({Fcr-^a$<>h4zK6CwA*0#tkA9uFMi+Hz_m)u7f1Nfv2<)r{O zn0ycfsGB#gD%0-$Nzsy)VJ6!mcYay|ewpF(T}eX7p{hPEbMfGBqjDmSA1}H!dthob zbq567*J(lI;iVL`g&ieNraH{xR9+;5ksT-L*;(>`bPRsS3{{mW;Kk`QC5 zHrmt_!$GM2UFt~L93Rk%03+2THUjml>3>F@B4k|uL2~`zOBDE6x>wO|w3b91Mr%o^ zuU68SBoTeF_3noJHGOX(_f_m*P& zvi3-;4$y_U!!voq%%iyZ5d*^d6HBCN)sA$u;;dLI`-U4qfPbAY4xi4e8MAuLGl#<+ zE@uA3#3X8NvcKg;#mKaT>%>OiS+ul&1OnIcV0MTHPe$euMBI1+hn60q)dX}b1=!~S z9h;uYwZE?=G=oy#;fi*3bhf==IxP*qSF3NC)(nEnaVJ#mmwrB6s)^O2F>BR5_a?sL zGn^!@u^gU5d^cAHK$jhNDG2r?Nt1*Q&(h%;9iFGda})i^zxw5*Z`!q}?bU35DKJ#Z6ymgN|AfqK$I`jxTf!orx2Tf3|}b zq5X#5{g;DnJ3VZ?HX1@%v(t3zVi$N*~TQ`@?*~N zj{YE_5nxi80JJ7J=6Gx*@7`~UGS?3gtPH{)|9ca^58(R%_xQj5OM>bi1rQ9Aha~{Q zp@fGCs(Tb)fTJJ6_krMluw8%k5WbJAmcOYL4+<~{9WOS`!|>rNyMZ)~g7zoE(qu3> zf^-{)(*N>$h!VL#n=p);m*V9kMYaee(1WLVa(q^SVmk7n3C;XW&a({oo85ioPQBAp zVC_tT#b0cRm~nP=eEsuMzB^fT7l`C zAKTsi9-e(0ySaV)XLgrgshKpnlQPHtr7c-4LqR&f_W2lX==h&(2{TU#BydX}98-0P z)WPHH&3EU zD1IZ@vT?Yeir~lAy$8O9m}+v%`_{1CrFZ8uuZ0qyOKhu-T0`Mtm&U z+32w9zVCah&o>`qK@nq$)FH&WX{>ku&0qiyAX2p4y$MNdgTd?=Kv95o;{OC`d3e5N z&}Y!(!I|9@H?wZB3xK`X%;zwwUy~d;!nL#rGTpiPLW!*;qAp%MNF6wiibxjrlQ4-* zR}*Ed%1W<)YMV*mZ;1^_wE>Yffl&})U~j6kQB&qVyL+EZp>XjiX(yS|Vm^9%fI4#+RcG zxgF8;q{{$H%K*zR1B4)2_9HOS3Hg7X2Cy0SFV9$+RPMHD7I-47hG}gug zg-PRo&iW*-34XF1GBK!}vt7zr@1vYwZ6ecy1OG|~8)OKAq$yqLU{2Uf;x?0(xy+8D z>6M20U0}Z(`-ez$YtD4%gl~sI)PO{5wC{{EY}1+0^dg)P0S`S7L!WO!9_!s=^5%x- zLQCN`*1%$;59no?5rQ#<9PW|E-E;_Wi5pOV8inazoX|_o%o|Mlu<+z<2duM0V zaVmjNRf<)K>}Td#mMKPtinXfyl0f{pid+7TXhZxE0w(lT$7Tf~99+4e4$ua6-y6ok zn1Eehk8u<+4%)MXLYkBwh7h?7K+;{1h)udM=>eD!DSN<_4Z(B>tsJs$ZVZ3|Ak4ad z5C&jn9k7@#x)7bK0o`Bk(EZ>|pgp;ks?X7R@8zensq$Tv3mLqM#K!UJEra%zBdRhq z1mibm68}Sn4|+ny7=AG-GW^sU!Mk*I*=pvvPb0Iw6-f!RMtLx(`w=}eL{AhQ1(1Yr zdHn)LNVhV|&1=}F#y)S|o(NGbqiJ-1G@z)%+J0giNWa8FLyH|$WlCl}M>(RNo}0Tg z(e-qGAs0UR6_)&n1eV)kbJ>bbcs^ca`s?e`#c5ISqcB~-zqT7$kdpM6ZxLv)aiGG` zI*~5`+80lth~a%mFq~;aK2pjXXo@TzyRiyKs5-^{%(So@lexPB{hes9D z@!ZmJ;{q+SB$D&vd?w_aXc9{5V||scVqvgyWYKLL5EOC#W`-b2@@Ux5FCga)9SiK) z#*%SSTz68V>7HLs3lkigH1S(+=&3ahuRKSa%zTtqKUAM&dJ$iVYV!n&tkYtEfCv7iXd_tEA7Z0La zL=NBmP>E!3XnGcw;22(i@c;r^M?1D`I9TZHNI&-IC>_DT^=QO0Xv z_9stHZ%ze94*C7eyo+RyUeRK^iZS75riy$SZ+AVWu686i*XT=sYzg@}ynCCVve>rh zubt4p7KSI%pX+?h0v#ZIBBS*R{ZsIJn= zlJq4cjv5K;SqclQ;uj=N3oAT#+XcC#Cc9nO0S`8ZRy|AOeL;ROjxDTGya-lEKDwz8 z%Fory>B33s3)wz@3b`^YTlA8Ib(fhkMvpp_5t2wQ66h*~jXUz|jvm~s)~No?2>@t&&c_wbebEiJARJce z4RMry{K37L1Qqz>B2}Bf+Gs6|@qM%~awu724tQzOsESN$3@WD4hYxh~0uR-H3TtT_7_4^?C zW6?8S-4xyN4)7}tTG60B*i}zAB>QH>-;MrJ(jB2XF-4>Ip~$qH#(BrRRK>*7QW3 zrm*K=tGRink$Z|#=!Xhj*XdzUmkJ3#)RLaKC7Q-~-jkk{*4cBFwrpk{2>#%Q8~JO0 zknHJwMjI+UJfwgz9wEjL)6$3uszDJ|+6hIV2n~Vy=l%#M8YcP?S`)$epdAqB+Xc_e z^Iy?1rYEapWFs@Htmjr)7gq7~XRT@(k-Z*KwrclC6@mrxB_M$V>4Dy%#n&rS-Sr{> zV|dt_YGLM^KGsxg=LtvG7DiD#0FDcPY|epa?k8Y<>}VtRP^$`P7ALYptJX5-W5>?t z!u1Dv1a@|V3o*ij18rN=L?onw;TiguIoW!-;U($TOy>J(Wo(oL+~@cb5Ys*)qv0r| zsA;?zy#NF>BE8zt`;zRNfURNYu@f4P1`biQv*sSz+L5ka^<@$ z<9Jt=_7HWBMN$)WV^^wv{;VK+zf2 z=}F((+*L`yy*n3pJ%qm=xW4@6P)cIGi}Sv^jNLweBm=Qd(w?sn*zOib+IyzkH7|r< zS=wDUFU5@ZtvW-=s6i3nKDQTt#+(S3=?JZr`V&|occF)Ty8GwUzGG?NG=Qv~%#dEu93qy+^D&*k4x#*4`0kN($-f!(cNZ2{dwl zZ9aI>E$&Rh6XlMeSde?$Q{z!G9!YCW(!qt$zkGDt>Ba8#9K7hT?}jRW-E1x8$KO>I zo{Iz-6?~B>I@;J(wrPXM zXxqkVDc$WvHMRonpA)Uo`x(6BH3a!QHy_SUj5S=9@NG?1PVvikYF;PS9< zg9e?e@C)=t@S}`2J)zHkN;U+%Aje~gX-GB;6g|YZukq{(c3~=hnXO#$c!VFmSM~4t zrD=R>Dya3MGR5ZgeKcUOuMriJJxAwSNQqM59^Y_}h(iveWHiDg?9nOiV2;i(c0al= ziFm;67(JAu$I0liB_uilGd@kmr*eFjjL$4-jUOaqAgYt(^hBP2o+hWKU1F1GC&}3f zlAM2FwtGFCc%_fs7H2Fr?lKm4@C8gc?UsF+m-!M@J1XC*GQkRXr0{vVj?YE{UWw27 zBcQ|$0I%amT!%kC#*c_7csVsM_39Fzu}7qidH%eqRhr8lt}sR+$W{9LI9tx#b3Bbu zo<|q5FYN^s1`TR|gnOza-~xs-neyXD37o|nKTgJv<>@Fn9m&(j$?0QxHcHM$@@$-( zjq(1m@C>gL!Xe+_5k7}NOxTKK4K~!3D)T=LeE|*EsPeTTpojQ|4r*0m<1xM>fy3I^ zT5Y+Zr*SeGqfi+Ev=5WpLK;>eLgxvfAxQAP=)M(OCY=_K92_R)N>h|YuBYNm7}U8@gpTP6pKW54EH z-}TeIm9DQbRf-k2;GXtr%C)HvQphido7zg$!p}w?Zp9V7mZ{%?k%!#ZAlh6-hc6Zl zeSHk}K;ka!q@O(pdnj!ia_)(!TS7kFD~y=QxgqL*#t#=x;<5$>^$e>ALhw5tgY}bF%ANk@a2MH;-lhsvZ}#6@Q2`!M8t<*0SRHW} z^v2VF;zGibS48K#xj6|iy1VAo162Owm9s-|Mrgt zmJZ`SN*WC5__M7BBRjTcs9?S3q89?1>o5ph>2?^X>HrWHCAWLZo_EYTfA}i8Iryt{ z7lBiYigV1UQYxJa!lrCw&UKxbI+xPYtvvX85qU=r>ps9L^ZA5rHBhZ z0SMS&0XaSF9F=_e8iGWn-i`v4pLcA30GiBkbW|Tjtqp(;%pLb|f2`Qp=qt|jx!P^P zQBRal0`#7EAI%Mu_|f)(aiHxzYp*(~B5v!&npbX$VGVbbJ=~(M4s>(5I8c}=A?!kJ z4eM3}Ib+f0zbO9#8qv4eOF70Z!Vpg==YzO7%tKkeMyw2XLg@(Y=APX!xL&A#(rmEf z9wZ9R%!qij%>sM*_+?+eqibC-s!k@Jc}0vZRo;)u)%pB z0XdZ*QU1LPa2W7qW!0k0b|qSWge%^N+ZXv@J9tWqsjLZLO)^k#9)JPv6)15}v8- zO;yQ@0@5f7V1V_)VhY*HrF%wZYZrFCLh{7gEy`9Hos?D~0s`{dkRh^Opr zj>I~xKypuDGtgy(srN;0GneRr2IHi_GHZPRX@d(&5OK=go_N*nii_ItLY2-#gz5gkutNU zY+rU)^o(u>2rnEj?S|Oi;n1|pV=RQT$ZkW6UEhyLK#`U~!Y!qaoZGPU9IzfU1^cd^i z(4RouduxK+#p|*T?RP&1%y}bnPEJfM`t&PlB(|V=Alj!1$71(?V8>X+;8>cv>>ZA+ zijED&h*(kgYcXIdv?_vA6<_&#K;$BMJ3H(s-E!80s3ZT&*^R*ernQT4^|ZG7&$lWn zr)PYl*7+_tTB@W+H9g@K%8ugfyqzHy^g_a*N=Mzv(iug$eK3u+tb%*X`+R|1>9~@w zkWCZz0{Z0LIRXfOy40yv5OVzN402dkcSwJrJBqTC>LhA%{a~-hO-Tx4O%@kc*&fHb zvM89)`{>(e@Tn2EBFGF0IL8~A3}m(#!Vkx_udDrqU3XU1u^>rNy6)8M)(W|8FT!d& z>0Y%4K>(rOJnXpJ*POu{rn?<`BrLYM_5|OOIG9B%*SE!g?bbLaLb}Ou?peRD!#p(c zU%(AX*4SM4G!G7Wm0?Cs@a8g)VGgnX8Q%R@w0wn06DGKWadp2>4u;bnjwkj;UC|e5 z{7>}xv4lr+N7Ma9VgBroNS_6g0u0`1C@OkpO2!x58FV{Gdtm+($igc&o~7 zUGn1r_x%^ZW9+C(^{#NX$)ey5*U`>Q%}UZ7^&SD1=P1F3gW-pY@NtLeH#OLIH`Y{6 z81XwdR}p=8ci9LTo(48M*K8K}3mG_V-uF-vD%QnXEGLJ)^ zqwfB}8F?1cbB=zHsqy6GFSwo5mAk8cEk~#jdG0)hoBrGP;G%7=5VTaC)N5ZeG7dDG z4OHs$xj#vdS$kw3yMSoo*T7969!d)XXbks=YSb+m`es7rLyA$6ObvLRi_`$oK+oaS zsOw;Vb|@%4s}u$0;PD9l>4Yi#su%pW*V7C406+0{@gM$auTXpizqoKb>2EBK`kL!b zbK7X2#uYbqPLCo#M}E7_NXus3vOG|{z(@~{2WqYN+AQKhGU`S=SFc^LHo?!tp*k;zEHyH7CCW@2nH zl+=^@2=_`U~T(L@ji3NDt(OVI` zD&l$s9F!YTIhIRh5^@Sy_O$=^JoC|cbT9bHO54M| z5g;}sO=m$P12}Be7FBsUj}kYJ|HPwz|DISJm08&qe3gAgA5Yp(Czu)zoIe77n{KhY zX!~og*Hm%@9h)X6(?3j$?B4vM<mwB=uzsu~87H9AS1dkq`JRXgDk=e6lNBGyQu#?L?o&_c)(>}I2JPjOv;mWPE(-YRldW z%P2a=P2UfT$xmoYe{`iACqH=tANVYSSVlV&Y$RUoT2k_oU2?2R*W@C98)0=07OjqYi|Pzc;WBYZ~mcSOWyYqOfT>a}_23gQCW#2R;p$c!IQufzOdI@tmY*93=#M(zcA;Fq249bFsDW4;4u zFGfFL$*4!15ziMi7?Bfy;+aCt^e)b6e@%Nt`h_u8G-1ASs~nj-XOQ|UCpJEfDe(b| z0g8&DsE7!l`~OGF$E4D5t)>+WO{x`?Na8zp*C0~OCDgK-wlYx3dFpJL^DHE#@8V3z z_8VX`D4z=~Fii{P8iC=5#mh}sxl8%pYFqd4jw1u>9gbF@}s=g z#*x7D(>dOY2%nqwbBG4*42_1lsG$phAUY)*e~KaEa;X7hYueo+HWQA!J}2(7Yy_`W z{JGc?N3R3wKX-EIudx;OuuZoXGcX?0q{D3^Iw<}hT1i;(2_b|L{oJKH(;f5M63EJ5 z>G0^90i|kQA01SGe%n^Acrin=c8ggd!B*i)(E_cY7OfbOYsTc-Y?EsPtLl+!P@V}! z3S;BXI}lurFt&SC2-^%^rDlMjaeg;x?1;mpbHuO5xu>Z_5?j%ed!h$g?GQaO=edV) zXyN2i?#=zZJItNujIq1FH&IkQ-MM~*?>pz#1O7+6(NhM05}Sdh(D=DeR5`If4!|qt zy2qQea5hLwCgp)|NvJOXslhuT)&uBuAD=j8OsrUXoKiBJB@-5iEUYggtPIVLN^~p9 zW|JBw2NlYrbdBa2i!=EX3|M*q;5%W&UyWHsI3gLvx7cq9~Jkvw0vY~-!y-Z!I#gNfg43T(ABp8Wd-GHTB|GQYV^O&~tKny!h z0I&%Jl1W&Fi06W@#A)qP?)ZI&A|g!LAsuVl9fTw#iT0O&iT2%P-$?h)0@oegkW1aK z8&+U{e~HDr1V8>JBAl zWM?)o7STAhr6tn%wzJ1#caL-K&Oo>@>+^ez8oB{kGrXt-H&|&JKqx6wVJD1m6z6m+-sU;FiqIt=~^XhhIEV+v~NpU z-_@RfR+9UW^=>R}!u&Wu)irK3nFWVMzBV5+cXHWFhWkW5mA}cK<>&I_6c7QZSFncggjZL}H9lP~OH9p2gRoS%DW5ACQ>*kE_Vm;W1Co=zoa#-| z(2lrg5|Y`k&?4k;oFW{z&c4A`%`ri!`a|e{iswt*mg=kcRalX{<-Up^az$RjzKS4? z6q~9&3;P*Wz=`ALw);`{jc1E)c0^uZ*(oQVNScyPo=OZvd}`l*lQe_mXZe4{eQS5( zI@0d<^DDZ2&Q4p6lGp|UG41BuZ|`O9p9r%SohXTS6O+M^Oz+0?+utgw{&g3 zYxX5bvQ#SFrIP9?{QzO@T3%mBpB}e-@!hsf4o7VBj+=B#m!ul~NZKa1^q%{fbe-== z3Hlqo_kJRs=ND3Tejr84FRa7N?^H-jne>x=on)hn8dQVNj;O)6{p$BHy z4cXDhjX}iQ``YWx(R!+A$0Iq8k;Q~AVbu`#1I_)9XYAy%W@F+AfbEMI{~n5e4DklP zB6qZ)9BMe*ZbL5lk({aIz5a>0o7vsX=Jf9I!+8lR^1dLx)8?I4PsKN3olCZMRI=J0 z!GEFs0FJpj5R*~=Iqvpts_zpg?&28TPVD;wv48pHe;WPS5bMihiNd9LbSJG?%{J$Q z`3`^j^G~0~+LeJTz0%GUoSEr=u}tDN?(~J;_;au`NHz& zb6IbXRsEeC_h{9Bb7P-c^-pf1)2sdkl6|>AV$=BRg|>!O)bi`a);PD|tc~*?oMaNK zc*bDs`6lu<>57vsIO)ZZ-bw%ONzsD{K>0J5v#W*$sb25 z9sD?2S^Dc~4G*rIr<00*d3G2If6lSr3L7qI7D^N0JaUZ%H2GeO)AwYDDO!yEhDKGW zceoLmK9nW>^Ld<}DX~j1Ilk@>WdvsrFDn|gPF~(DJ2)`Q4%+Mw%%e>^3mhy6eGQg` zhTG3Y)Iv|Q0d;-H+|P`uIi}6~&`yjv6$AeZnxN}?$j&%--@oPKB=m&HTbPtSsfbOAj57B*P+*jxx8TaT&XEM>8 z#Hm9x3Hy9@U;q~=ZHtLTO z$VvA}V-5IFryL*alz%;`Q;wy=8P5R8zBzAWf3xXi)jE56v8fJlqXJn%jU!a8-pg1P z-ACUs)SM1~e>A&AE{3ek^!&!_aZ?hWntyY#RvI%ekyZwvX`o=te+^6TeOS571anCb z7m`ayXF(9{A3p$Efj=zW;q$v&dBnA+gQeQ1A|!u%mzc`Ks2$G{He7xF9tRQyFuO1Enh zk=mRiCKfOcRrp{>ZoU4t8*-yQf7;H9M-`q+{(vOfp2*TMJrg~ZmD9gv+e<}b!SdRQ z>nCr2KMr0w6&FQPi5A;ht=IaoiU~kjXAQotD2{!#Yvs*TMkIX&tDMeu6_>GURYN3V zQjlpssSM`vMk@QdpO4u-?ls2tF|wsmsI9t>oqUyw6@gZ6i`5~O3IzL$bYy+;MAF(v zlFr_e{@XFN2gdgVjyA6Py4r`!Pz;x`wfahbzlByWZZA-;*ape1f%|M*K*fY1$bz5t zjV@Hmqq@!*C{cH38NHHRMSgjtG>e3>7UPi(!&F85}Pxgdul2h9zac|{u4RL!5zcCnQ)5=27b^^>odz>l zm=-`zfSl4%`B8o)OI;>pr?y3?rtx~}R(lREpa%s)iX}RsVVixdQq;@C!GQZBdwbhL zNVW8DFBUauPCb>i0&_1A1Y$L<-@1M&MHPQJQ-H$P7w z^Vls9@-MfH>AMHL@E$Y%_tl;9b(}Y#21!kQk2P2r|5&3c_F%8Ct64myO7Wt;ekZ81zI^PFBil`C!hv{hw!L`atZIXcrV85 zR)<|u$QKiTIc#rrHQW>%_7ru0jOQXTU0ao=N~R+3^{RZ} zH8w(*MIP;+67L%gcShdmWVqs)#es>?B{QWeT@WozSj8olZt{#z%q`puc5>TDjHyDC zXeUQN?l_*3Z55$q1b?6JRT%~yskUIlx>|2*Qbuz>Q{%0n@tXa1i2WdcUx&+QL8_1e z578WI7w%o1wjn&I%Ef~+`?9#2m4S94I2gZ(eT_tQFvnt8ywgNx29eYhkO)#t!c&wlOiVSmKu9 z+dCM>n5k&=jsC<@>}n}uab}CX`kzJ~d~cLfNHmXE0`@;u36r6JaFzQi!YyvIP>?c? z6!H`q*uO35#gYdqv~L zyIX7)k*rKKWLyH#)5sobCPgjMG@Z_-s>9gE)Lb}Q?sjenv1I>v!;8@%h`S2Ekg!)0+tnhapv-g2l$A8uwo3hv5`bM?_gBgOqp?k zb{`2K($KI#bvQ(}hY%B2_`&UwK*y!+ASP~41NfqZL4+@S%A#hQ0D9Ldh~Bjg0Vnv_ zf`1nvAZ6RNA2jV$tBb}*JB|(-g2-3MUZ?VqcjWN0FJwX0*&V zw%&&2ZIRCITg4>B-NCfzytrp$-0Mh2w`>&M(5F2` z{3QRPm5y!&OvzBQu|w6+lHZ?lCI6DE5bW{=ZdYXOex#+b{o3H{QQ;Kt+E*cKA9f%4 z7A&zdZ?l&F%}snUbrt)AdYU&k^p=>FtXtVO1yp!{ew}S#kVa9{cvuOZFq)F=srF+R zi%D(&iS_k~j8z#oy7j-AZu8Y-!=j?%?mV5aAs}@dD|&a`UQSrERNPw&hk$&He^2x z-dxUqd+$D8$_RQGP?7ev#>|(64cQiVy;Mvv%lGI9I>R!q2@;SyBEN@}X4j6*q9FjOwlu@YV8GGQ2ND0(Y@P`Ux3gy{!Q^L3)?3-4guo_M-IBD=-g>Aag0B-}$~?iB<;1*vDpL7k=7R_G^93Tjf{=@* z3A<%NU4?upQ9&WUl~^nJqr|Jg{8{3Ed=}WoJv9<_7xFzZTe~CBnueet3%^e&hIugi zpF9Q!R)+ZmJ1jF8UfLKM#w&g)m}lH}HUU%Pm$RGtds9sE+09&jh+^^S^BmTKRdE?l z^C+JE8D@S1K5=tF9`R8`xL#~^oDUG^gB#}q#rXhnCVEXMz9)HflSFb2KkG<;RyhtF zxq+We)S$(&O4YXuv{C_U8!lppAtT9OhY;uq#T^eW3~FRS9a+XiA*^mreo`zZ&(F?b z>%nnt5CM`=n@* zlA=XMiWXy|Xfc5BCpwC~keR%H2QrWMg{MCG5KcwEDF3!T=u{aL3~ z2kf2JO1F8}jz^Z<%+-jKEx;bgEfiamL&KRLZ3=pzx;8WtMF7hm)L^k-K5PIuNDqk(0`{_IrmW6Ch|;? z{@gUu0XEFv#5J@chKJ&R$q_MdfdmjUefBu9ua?+XpO~SbiQy^dO)5)EWm(+PxlsE% zLSM9^;gV1m>*{^1c+zwa!OsDFK&0fz!pUalJ0~Blvx`Fnm@Tt}l^VXJ~r?7QmE~@;VxSvYd#jBn$-a zW4!Z#b!(iCM3|QEJJ+1{xP<9f3&x0Vs(4;8x zo8F$@Fh(y5iOr58jAA~X2#xThbSrxHEj*!ArzrPRcckrhu20+DaQuf1X#4^c;TO z$nW|#d(+TCfe=q79W(JwSLR73L0@QXglfR*`!6OqlHZN7Z5)fPh1Kop7FL~vFkR#7G2P(q{%b7qjks9eA&FSiyi+Igf)SaQQ*5qw?KI(* zrns|PEJfFgOjhyJXrzC{9xHK0(P(IJ10GGsQJu7fOG0kBwU5@0XO;CtGv{R59EI)# z9bn!O6LbKZFgHejw^5GK#b@96k_^6wOk`!x5Stx7mveR?)oe9e_cmw?7=C;6_L*-( zW~5|IC-YS?i;QwbBqOc)1HZbN;CE{swRMoX7Y4CYtB+!I>!^)`qMIOgqGnqpNvw{3 z)KZA%XnB88m$yX~&r&&*iT-!kx}dJ%FVyB-$dXYZAa){u!~ecd@$ofYd_Ql#nXMYm z<2pUsOy{&fdoD*9ZZOj5ODO-j%rKt8x_gt?xp2(n!tYTt>iB$RZLf~d-yVcft};ZQ ze!K~uD`QZ7gYL2ZP~+jR(vU83bYDjpNN1+t(4Bfl3_7a^j{!VcHX@(R8=zM&?)C9E zK=8vX`q1ltToHk|FS>z$BEg{%1b%>^52E)Wntwo=1mqXwksm{Mu%dnVY5jsB@00oZ zVLp^s`IQ{!W32b1ARP2^lindA0>LJ1Is4kvbdXr(zo_*}3z^m$HDgk@`r9Gp%|_Os z>ixgW>QJ{@-+`!RC9wyhKm>w7SrHHacTqnUATjNK{u@n<5o+eh-61BfRJ|sEcl8Ml zB>EZjxe~VUTGJMx8O|$l$qHZ?+-@SY?WMn!I%-w?tQi%AWIgEPu|CwpCp|RO&8= z$W22Skfu_3Q0XE6KVVG!w+;1O?AgKD0k6@2rgd)WJthOQN+x30x>Etj6zt6e!c(xn zFItQW$pi)tfnk@xl}BL21ca%_F1IbSR7@<-|DXcKpul@(tBQVs&{*sHvOm4@0&pvV zDXCWJms66TQgQ&ML?(Fx3Lh~rYCpC8i-L+cCKptIZD7+||Ex>}QeY9210uSgFlT>% zzT=!xU!2nUPwFviu8m#GhMzSu$z}EP_9jx!xov^M$tD|fKGZ+fgrpz)ru}@7Z|M6*e;?*o5MsZN@^QY_;n#VZbe`n7I(qmf zw6uVO<)r2(qs1DvpljShsjC6_0SF5B^)mFifA3u(Y=B|3NdWH%y{JHfi4*iZ!`2Ku z*XXvO9^mhfMQ0mj#nty~rG8P_};+G(a4(AEsFOfbG=nH$f8;& zo&-=D7!13pAf?bWVER@MP+T+Fa=>mE(39}j6SQtn|L?LYH%hAppkg2@#OuR3E|-Q+ zf6rzU6Wm{OcDv3g$)q$?4xVI?4YGL3lrU>jisU3(n~ZvL&HF#2`W^|2&w?+WXR+P& znSL635^1K6rw>&8wPKEhzb^E6ZcZ8VG^*ibP)Hu|ZT05P?JaY65Xd@MG8VJrfsf6tf#Q-zc`z?@2nu#aQlr)6iZ|I!F6Kx&Rt z;{W>%c58C#FT0)7pmr@_)Mvt$#-GXliP# z%x=C?#ySGVjMq4+uJsBf^0kAZ^xhage^ToQwP)ImEgg3*Fa_O5mhOF|nw7J9e@%AH2Dd6X+WpYx(%K79Y0M?Ho0e}(egUeu5c zBYv>dc)C4S)pOI41PedJSD#XGL~lEPs>SyRh{Tb7$;oe9fBHE>I&K#bQ~ z7h5Zk@N%;XYH|U6Z1Jh)KDH2$wMI(#=`N3CJzK!2h9C`;fH^nTN-+e|ehy`_v!Cwf zBsoNuCy}f)(^@;l<+!IJf4MR3z$UfrJ66=1CnO0HiRIe8bv?D~A(@!{)OwZ9`aQ~t zc|(Gn2~(L~1(qg4)WMuEVm4-hJvDoX1^z_d!z`ew9r!sr+xvniSrH1ybDhwvn|}`$ zV24XWw-h8})ZCHa5qbLnywRHZQw_blH8=DjK%PE&gi)**Bt>?zf5Wu+t4oZwael3t zY2aYHQ7Vs=ovRL94UH=?1Z~ zJuI&a=M{on77)L;Z6(0*y`D6IG%ifjxYkvm$6LD%#+70z+yO)<9;%V0S0ne*E^k7Z z+5D@!CBjrDku8qV-u>!o?|#Q^KwL|p^%XRD!B?RV0pokoe++}>v~1`aGE{5Vowj3BoBQ$JJWvbEjkv& zb66A7Wu!*#xVP3`Uvos~wGmL$6Vk1Rt!*zx2I+Bw#O89hDiniQuZ0E8&!7!fZOPaWZLG*X({nOz{vq!oGX#@ zUITCKm7m_NqL@$d#|3>f5YFmznvEu6qwn_$aG$9i$d4q->Wh)t?mCI@P2F<&!u7Z2 z6w7XQuv1sz}$5kU&MwW5t z?a1>53nIu316lvVy^2lztOa}4OA$k8w`4B!rC9OD$&1$5@O9}d7j6e9m+4i=o{ij& zs~&Z>M&6$U8RkaA8DJq_=oLYzMmU%FO}6giSPzp#kf_#*ZaX4dbYG1J{o!DEH67$b zM3QM|g?|PZImn0lluR*_QFU3$G?91R`zevTU}Z`mx%wbIH*T!7U>!y8_TJ%zz?|Kr zv~4iiI?@`KExYa`oS`OTs918y(owqYZ9;rn7P#jL6_FEdWhxc4i76RvINwh4C?acA0% zuKv8qk5TD+DVZWs389)gaA2Pj>_b|A%-&{8bK(6MrT~~MkYwYmKe&RaW0(PcuIi5=MO@+C)GkZ=*U9xT86bWPv_0Txqi*}$+{YQw|*W z&~ab29dvX;Hy`;anWCT5KYUo2CY6WAM}Kb+93lLY!zSl3<0pen>&57LbamZN`-AaS z)=!5c)lbHpxifySw-1w1M!k(GnVvq;<0!kxGKd5taEx)2bfC_WU|Fb312zmKaSQ6x zFP(QR;T-CtV`-8m8G^so8u1Q1eH21>$5M@X`k2NaLmbsTqyQr<*%@4Ah<0XNLmHRE z1_zyoh#VeuU*xzQb+1KW+ov{Dzn^R{lUYb4G&%Hwhb~%ZD;sZ$Z$uG0^SD8TR&k$2brX^7U-#gnl}C4YH4k7>+=onY@c?0)hN#{5P5 zrQ>(LnUkf+<6lt>Vaq|!m&0#0h*Ksf*M+6wZlFwM#KN}I+9)`CrvasZ+=4qtl{Ir@ z(5`~|K+F}Ph0nPU$jPD7R46sD#E&Yyhng5H0Twm`M&MWgIb*Vt0qHSexOj#--P*z zA=E)ur$sM3Wm@?M&X@4hOzOalxj*~q6?;o32X`46;RK4L1CwiT+Cyyto|_gpS=l~b zAD#oZnz?`FdGI*tib-?dr8n;2Z{#e)_tEj*E0@=@x?8=TotfX=ZZATumVnZWe~k_h w*i65?{Lk;|)pmWW{%!I63}yJ!@Bg*1$iE2deerXRV(S0&AHye34JG>k0M)}M1poj5 delta 18926 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 z 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 N{{S=|I`FLe0046h9{&IU diff --git a/dist/protobuf.min.js.map b/dist/protobuf.min.js.map index e42a3315d..ba0722c61 100644 --- a/dist/protobuf.min.js.map +++ b/dist/protobuf.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":["global","undefined","e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","Math","ceil","b64","Array","s64","encode","buffer","start","end","j","b","String","fromCharCode","invalidEncoding","decode","offset","c","charCodeAt","test","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","log","keys","Object","Function","concat","map","key","format","$0","$1","floor","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","extend","ctor","create","constructor","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","read","chunk","write","c1","c2","Class","type","Type","TypeError","util","Message","merge","$type","fieldsArray","forEach","field","isArray","defaultValue","emptyArray","isObject","long","emptyObject","oneofsArray","oneof","defineProperty","get","oneOfGetter","set","oneOfSetter","common","json","nested","google","protobuf","Any","fields","type_url","id","value","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","genValuePartial_fromObject","fieldIndex","prop","resolvedType","Enum","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","converter","fromObject","mtype","safeProp","toObject","repeatedFields","filter","mapFields","otherFields","valuesById","low","high","unsigned","toNumber","bytes","decoder","group","ref","types","basic","compat","packed","genTypePartial","encoder","partOf","wireType","mapKey","required","oneofFields","indexOf","options","ReflectionObject","comments","self","EnumPrototype","className","testJSON","fromJSON","toJSON","add","comment","isString","isInteger","remove","val","Field","toLowerCase","optional","message","Long","extensionField","declaringField","_packed","FieldPrototype","MapField","getOption","setOption","ifNotSet","resolved","defaults","parent","lookup","fromNumber","freeze","newBuffer","load","filename","root","Root","loadSync","build","verifier","Namespace","OneOf","Service","Method","configure","Reader","_configure","roots","Writer","BufferWriter","BufferReader","rpc","define","amd","tokenize","parse","resolvedKeyType","MapFieldPrototype","properties","writer","encodeDelimited","reader","decodeDelimited","verify","object","from","toJSONOptions","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","MethodPrototype","initNested","nestedTypes","nestedError","arrayToJSON","array","obj","_nestedArray","clearCache","namespace","NamespacePrototype","methods","addJSON","toArray","nestedArray","nestedJson","ns","nestedName","getEnum","setOptions","onAdd","onRemove","ptr","part","resolveAll","filterType","parentAlreadyChecked","found","lookupType","lookupService","lookupEnum","ReflectionObjectPrototype","defineProperties","unshift","_handleAdd","_handleRemove","toString","fieldNames","_fieldsArray","addFieldsToParent","OneOfPrototype","index","fieldName","isName","token","isTypeRef","isFqTypeRef","lower","camelCase","substring","toUpperCase","illegal","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","Infinity","NaN","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","cmnt","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","trailingLine","parseInlineOptions","lcFirst","ucFirst","valueType","enm","parseEnumValue","custom","parseOptionValue","service","parseMethod","method","reference","head","keepCase","package","indexOutOfRange","writeLength","RangeError","pos","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","Uint8Array","uint","exponent","mantissa","pow","float","readDouble","Float64Array","f64","double","skipType","BufferReaderPrototype","utf8Slice","min","deferred","files","SYNC","handleExtension","extendedType","sisterField","RootPrototype","resolvePath","finish","cb","sync","process","parsed","queued","weak","idx","lastIndexOf","altname","setTimeout","readFileSync","isNode","exposeRe","newDeferred","_parse","_common","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","response","endedByRPC","_methodsArray","ServicePrototype","methodName","inherited","methodsArray","rpcService","m","q","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","setComment","commentType","commentLine","commentText","trim","stack","repeat","curr","isComment","delimRe","delim","expected","actual","equals","ret","0","_fieldsById","_oneofsArray","_ctor","TypePrototype","oneOfName","fieldsById","names","setup","fld","fork","ldelim","bake","LongBitsPrototype","zero","zzEncode","zeroHash","fromString","fromHash","hash","toHash","mask","part0","part1","part2","versions","node","Number","isFinite","utf8Write","encoding","allocUnsafe","sizeOrArray","dcodeIO","longToHash","longFromHash","fromBits","dst","fieldMap","lazyResolve","lazyTypes","longs","enums","invalid","genVerifyValue","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","WriterPrototype","writeFloat","isNaN","round","LN2","writeDouble","writeBytes","reset","writeStringBuffer","BufferWriterPrototype","writeBytesBuffer","copy","byteLength"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object.} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return i ? String.fromCharCode.apply(String, chunk.slice(0, i)) : \"\";\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(22),\r\n util = require(37);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a class instance, which is also a {@link Message} prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return ctor.call(this,p)\").eof(type.name, {\r\n ctor: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.fieldsArray.forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue) && !field.long\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.oneofsArray.forEach(function(oneof) {\r\n Object.defineProperty(prototype, oneof.resolve().name, {\r\n get: util.oneOfGetter(oneof.oneof),\r\n set: util.oneOfSetter(oneof.oneof)\r\n });\r\n });\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) {\r\n var values = field.resolvedType.values; gen\r\n (\"switch(d%s){\", prop);\r\n Object.keys(values).forEach(function(key) {\r\n if (field.repeated && values[key] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", key)\r\n (\"case %j:\", values[key])\r\n (\"m%s=%j\", prop, values[key])\r\n (\"break\");\r\n }); gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n var oneofFields = oneof.fieldsArray;\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n var self = this;\r\n Object.keys(values || {}).forEach(function(key) {\r\n self.valuesById[self.values[key] = values[key]] = key;\r\n });\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id, comment) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Enum = require(16),\r\n types = require(36),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(FieldPrototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(21);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(19);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(15);\r\nprotobuf.decoder = require(14);\r\nprotobuf.verifier = require(40);\r\nprotobuf.converter = require(13);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(25);\r\nprotobuf.Namespace = require(24);\r\nprotobuf.Root = require(30);\r\nprotobuf.Enum = require(16);\r\nprotobuf.Type = require(35);\r\nprotobuf.Field = require(17);\r\nprotobuf.OneOf = require(26);\r\nprotobuf.MapField = require(21);\r\nprotobuf.Service = require(33);\r\nprotobuf.Method = require(23);\r\n\r\n// Runtime\r\nprotobuf.Class = require(11);\r\nprotobuf.Message = require(22);\r\n\r\n// Utility\r\nprotobuf.types = require(36);\r\nprotobuf.util = require(37);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(41);\r\nprotobuf.BufferWriter = require(42);\r\nprotobuf.Reader = require(28);\r\nprotobuf.BufferReader = require(29);\r\n\r\n// Utility\r\nprotobuf.util = require(39);\r\nprotobuf.rpc = require(31);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(34);\r\nprotobuf.parse = require(27);\r\nprotobuf.common = require(12);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar types = require(36),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(35),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias NamespaceBase.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\n\r\nfunction initNested() {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @memberof Namespace\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(NamespacePrototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n /* istanbul ignore next */\r\n throw TypeError(\"nested.\" + nestedName + \" must be JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespacePrototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (!nestedTypes)\r\n initNested();\r\n /* istanbul ignore next */\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object must be \" + nestedError);\r\n /* istanbul ignore next */\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object must be an extension field when not part of a type\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n /* istanbul ignore else */\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n\r\n /* istanbul ignore next */\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n /* istanbul ignore next */\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n\r\n if (util.isString(path)) {\r\n path = path.split(\".\");\r\n /* istanbul ignore next */\r\n } else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n /* istanbul ignore next */\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(37);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nObject.defineProperties(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(30);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOfPrototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent) {\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n this.oneof.forEach(function(fieldName) {\r\n var field = parent.get(fieldName);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n });\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(34),\r\n Root = require(30),\r\n Type = require(35),\r\n Field = require(17),\r\n MapField = require(21),\r\n OneOf = require(26),\r\n Enum = require(16),\r\n Service = require(33),\r\n Method = require(23),\r\n types = require(36),\r\n util = require(37);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n skip(\":\");\r\n // if (skip(\":\", true))\r\n parent.setOption(name + \".\" + token, readValue(true));\r\n // else\r\n // parseOptionValue(parent, name + \".\" + token);\r\n }\r\n } else\r\n parent.setOption(name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(39);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(29);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(28);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n Enum = require(16),\r\n util = require(37);\r\n\r\nvar parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRootPrototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field) {\r\n if (object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(32);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(23),\r\n util = require(37),\r\n rpc = require(31);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(ServicePrototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n this.methodsArray.forEach(function(method) {\r\n rpcService[util.lcFirst(method.resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(method.name), {\r\n m: method,\r\n q: method.resolvedRequestType.ctor,\r\n s: method.resolvedResponseType.ctor\r\n });\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n commentText = source\r\n .substring(start, end)\r\n .split(/\\n/g)\r\n .map(function(line) {\r\n return line.replace(/ *[*/]+ */, \"\").trim();\r\n })\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(26),\r\n Field = require(17),\r\n Service = require(33),\r\n Class = require(11),\r\n Message = require(22),\r\n Reader = require(28),\r\n Writer = require(41),\r\n util = require(37),\r\n encoder = require(15),\r\n decoder = require(14),\r\n verifier = require(40),\r\n converter = require(13);\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n /* istanbul ignore next */\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = this.fieldsArray.map(function(fld) { return fld.resolve().resolvedType; });\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.from = TypePrototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nTypePrototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(37);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(39);\r\n\r\nutil.codegen = require(3);\r\nutil.extend = require(5);\r\nutil.fetch = require(6);\r\nutil.path = require(8);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n return object ? Object.keys(object).map(function(key) {\r\n return object[key];\r\n }) : [];\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(7);\r\nutil.utf8 = require(10);\r\nutil.pool = require(9);\r\nutil.LongBits = require(38);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n fieldNames.forEach(function(name) {\r\n fieldMap[name] = 1;\r\n });\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n lazyTypes.forEach(function(types) {\r\n Object.keys(types).forEach(function(index) {\r\n var path = types[index |= 0].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n types[index] = ptr;\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (typeof value === \"string\") {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(41);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(39);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file +{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/@protobufjs/aspromise/index.js","node_modules/@protobufjs/base64/index.js","node_modules/@protobufjs/codegen/index.js","node_modules/@protobufjs/eventemitter/index.js","node_modules/@protobufjs/extend/index.js","node_modules/@protobufjs/fetch/index.js","node_modules/@protobufjs/inquire/index.js","node_modules/@protobufjs/path/index.js","node_modules/@protobufjs/pool/index.js","node_modules/@protobufjs/utf8/index.js","src/class.js","src/common.js","src/converter.js","src/decoder.js","src/encoder.js","src/enum.js","src/field.js","src/index-light.js","src/index-minimal.js","src/index","src/mapfield.js","src/message.js","src/method.js","src/namespace.js","src/object.js","src/oneof.js","src/parse.js","src/reader.js","src/reader_buffer.js","src/root.js","src/rpc.js","src/rpc/service.js","src/service.js","src/tokenize.js","src/type.js","src/types.js","src/util.js","src/util/longbits.js","src/util/minimal.js","src/verifier.js","src/writer.js","src/writer_buffer.js"],"names":["global","undefined","e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length","1","module","asPromise","fn","ctx","params","arguments","push","pending","Promise","resolve","reject","err","args","apply","this","base64","string","p","charAt","Math","ceil","b64","Array","s64","encode","buffer","start","end","j","b","String","fromCharCode","invalidEncoding","decode","offset","c","charCodeAt","test","codegen","gen","line","sprintf","level","indent","src","prev","blockOpenRe","branchRe","casingRe","inCase","breakRe","blockCloseRe","str","name","replace","join","eof","scope","source","verbose","console","log","keys","Object","Function","concat","map","key","format","$0","$1","floor","JSON","stringify","supported","EventEmitter","_listeners","EventEmitterPrototype","prototype","on","evt","off","listeners","splice","emit","extend","ctor","create","constructor","fetch","path","callback","fs","readFile","contents","XMLHttpRequest","fetch_xhr","xhr","onreadystatechange","readyState","status","responseText","open","send","inquire","moduleName","mod","eval","isAbsolute","normalize","parts","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","pool","alloc","slice","size","SIZE","MAX","slab","buf","utf8","len","read","chunk","write","c1","c2","Class","type","Type","TypeError","util","Message","merge","$type","fieldsArray","forEach","field","isArray","defaultValue","emptyArray","isObject","long","emptyObject","oneofsArray","oneof","defineProperty","get","oneOfGetter","set","oneOfSetter","common","json","nested","google","protobuf","Any","fields","type_url","id","value","timeType","Duration","seconds","nanos","Timestamp","Empty","Struct","keyType","Value","oneofs","kind","nullValue","numberValue","stringValue","boolValue","structValue","listValue","NullValue","values","NULL_VALUE","ListValue","rule","DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue","genValuePartial_fromObject","fieldIndex","prop","resolvedType","Enum","repeated","typeDefault","fullName","isUnsigned","genValuePartial_toObject","converter","fromObject","mtype","safeProp","toObject","repeatedFields","filter","mapFields","otherFields","valuesById","low","high","unsigned","toNumber","bytes","decoder","group","ref","types","basic","compat","packed","genTypePartial","encoder","partOf","wireType","mapKey","required","oneofFields","indexOf","options","ReflectionObject","comments","self","EnumPrototype","className","testJSON","fromJSON","toJSON","add","comment","isString","isInteger","remove","val","Field","toLowerCase","optional","message","Long","extensionField","declaringField","_packed","FieldPrototype","MapField","getOption","setOption","ifNotSet","resolved","defaults","parent","lookup","fromNumber","freeze","newBuffer","load","filename","root","Root","loadSync","build","verifier","Namespace","OneOf","Service","Method","configure","Reader","_configure","roots","Writer","BufferWriter","BufferReader","rpc","define","amd","tokenize","parse","resolvedKeyType","MapFieldPrototype","properties","writer","encodeDelimited","reader","decodeDelimited","verify","object","from","toJSONOptions","requestType","responseType","requestStream","responseStream","resolvedRequestType","resolvedResponseType","MethodPrototype","initNested","nestedTypes","nestedError","arrayToJSON","array","obj","_nestedArray","clearCache","namespace","NamespacePrototype","methods","addJSON","toArray","nestedArray","nestedJson","ns","nestedName","getEnum","setOptions","onAdd","onRemove","ptr","part","resolveAll","filterType","parentAlreadyChecked","found","lookupType","lookupService","lookupEnum","ReflectionObjectPrototype","defineProperties","unshift","_handleAdd","_handleRemove","toString","fieldNames","_fieldsArray","addFieldsToParent","OneOfPrototype","index","fieldName","isName","token","isTypeRef","isFqTypeRef","lower","camelCase","substring","toUpperCase","illegal","tn","readString","next","skip","peek","readValue","acceptTypeRef","parseNumber","readRange","parseId","sign","tokenLower","Infinity","NaN","parseInt","parseFloat","acceptNegative","parsePackage","pkg","parseImport","whichImports","weakImports","imports","parseSyntax","syntax","isProto3","parseCommon","parseOption","parseType","parseEnum","parseService","parseExtension","cmnt","parseMapField","parseField","parseOneOf","extensions","reserved","parseGroup","applyCase","trailingLine","parseInlineOptions","lcFirst","ucFirst","valueType","enm","parseEnumValue","custom","parseOptionValue","service","parseMethod","method","reference","head","keepCase","package","indexOutOfRange","writeLength","RangeError","pos","readLongVarint","bits","LongBits","lo","hi","read_int64_long","toLong","read_int64_number","read_uint64_long","read_uint64_number","read_sint64_long","zzDecode","read_sint64_number","readFixed32","readFixed64","read_fixed64_long","read_fixed64_number","read_sfixed64_long","read_sfixed64_number","ReaderPrototype","int64","uint64","sint64","fixed64","sfixed64","Buffer","isBuffer","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","readFloat","Float32Array","f32","f8b","Uint8Array","uint","exponent","mantissa","pow","float","readDouble","Float64Array","f64","double","skipType","BufferReaderPrototype","utf8Slice","min","deferred","files","SYNC","handleExtension","extendedType","sisterField","RootPrototype","resolvePath","finish","cb","sync","process","parsed","queued","weak","idx","lastIndexOf","altname","setTimeout","readFileSync","isNode","exposeRe","newDeferred","_parse","_common","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","response","endedByRPC","_methodsArray","ServicePrototype","methodName","inherited","methodsArray","rpcService","m","q","unescape","subject","re","stringDelim","stringSingleRe","stringDoubleRe","lastIndex","match","exec","setComment","commentType","commentLine","commentText","trim","stack","repeat","curr","isComment","delimRe","delim","expected","actual","equals","ret","0","_fieldsById","_oneofsArray","_ctor","TypePrototype","oneOfName","fieldsById","names","setup","fld","fork","ldelim","bake","LongBitsPrototype","zero","zzEncode","zeroHash","fromString","fromHash","hash","toHash","mask","part0","part1","part2","versions","node","Number","isFinite","utf8Write","encoding","allocUnsafe","sizeOrArray","dcodeIO","longToHash","longFromHash","fromBits","dst","fieldMap","lazyResolve","lazyTypes","longs","enums","invalid","genVerifyValue","genVerifyKey","Op","noop","State","tail","states","writeByte","writeVarint32","VarintOp","writeVarint64","writeFixed32","WriterPrototype","writeFloat","isNaN","round","LN2","writeDouble","writeBytes","reset","writeStringBuffer","BufferWriterPrototype","writeBytesBuffer","copy","byteLength"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = [];\r\n for (var i = 2; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n var pending = true;\r\n return new Promise(function asPromiseExecutor(resolve, reject) {\r\n params.push(function asPromiseCallback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var args = [];\r\n for (var i = 1; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n resolve.apply(null, args);\r\n }\r\n }\r\n });\r\n try {\r\n fn.apply(ctx || this, params); // eslint-disable-line no-invalid-this\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var string = []; // alt: new Array(Math.ceil((end - start) / 3) * 4);\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n string[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n string[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n string[i++] = b64[t | b >> 6];\r\n string[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j) {\r\n string[i++] = b64[t];\r\n string[i ] = 61;\r\n if (j === 1)\r\n string[i + 1] = 61;\r\n }\r\n return String.fromCharCode.apply(String, string);\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar blockOpenRe = /[{[]$/,\r\n blockCloseRe = /^[}\\]]/,\r\n casingRe = /:$/,\r\n branchRe = /^\\s*(?:if|}?else if|while|for)\\b|\\b(?:else)\\s*$/,\r\n breakRe = /\\b(?:break|continue)(?: \\w+)?;?$|^\\s*return\\b/;\r\n\r\n/**\r\n * A closure for generating functions programmatically.\r\n * @memberof util\r\n * @namespace\r\n * @function\r\n * @param {...string} params Function parameter names\r\n * @returns {Codegen} Codegen instance\r\n * @property {boolean} supported Whether code generation is supported by the environment.\r\n * @property {boolean} verbose=false When set to true, codegen will log generated code to console. Useful for debugging.\r\n * @property {function(string, ...*):string} sprintf Underlying sprintf implementation\r\n */\r\nfunction codegen() {\r\n var params = [],\r\n src = [],\r\n indent = 1,\r\n inCase = false;\r\n for (var i = 0; i < arguments.length;)\r\n params.push(arguments[i++]);\r\n\r\n /**\r\n * A codegen instance as returned by {@link codegen}, that also is a sprintf-like appender function.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string} format Format string\r\n * @param {...*} args Replacements\r\n * @returns {Codegen} Itself\r\n * @property {function(string=):string} str Stringifies the so far generated function source.\r\n * @property {function(string=, Object=):function} eof Ends generation and builds the function whilst applying a scope.\r\n */\r\n /**/\r\n function gen() {\r\n var args = [],\r\n i = 0;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n var line = sprintf.apply(null, args);\r\n var level = indent;\r\n if (src.length) {\r\n var prev = src[src.length - 1];\r\n\r\n // block open or one time branch\r\n if (blockOpenRe.test(prev))\r\n level = ++indent; // keep\r\n else if (branchRe.test(prev))\r\n ++level; // once\r\n\r\n // casing\r\n if (casingRe.test(prev) && !casingRe.test(line)) {\r\n level = ++indent;\r\n inCase = true;\r\n } else if (inCase && breakRe.test(prev)) {\r\n level = --indent;\r\n inCase = false;\r\n }\r\n\r\n // block close\r\n if (blockCloseRe.test(line))\r\n level = --indent;\r\n }\r\n for (i = 0; i < level; ++i)\r\n line = \"\\t\" + line;\r\n src.push(line);\r\n return gen;\r\n }\r\n\r\n /**\r\n * Stringifies the so far generated function source.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @returns {string} Function source using tabs for indentation\r\n * @inner\r\n */\r\n function str(name) {\r\n return \"function\" + (name ? \" \" + name.replace(/[^\\w_$]/g, \"_\") : \"\") + \"(\" + params.join(\",\") + \") {\\n\" + src.join(\"\\n\") + \"\\n}\";\r\n }\r\n\r\n gen.str = str;\r\n\r\n /**\r\n * Ends generation and builds the function whilst applying a scope.\r\n * @param {string} [name] Function name, defaults to generate an anonymous function\r\n * @param {Object.} [scope] Function scope\r\n * @returns {function} The generated function, with scope applied if specified\r\n * @inner\r\n */\r\n function eof(name, scope) {\r\n if (typeof name === \"object\") {\r\n scope = name;\r\n name = undefined;\r\n }\r\n var source = gen.str(name);\r\n if (codegen.verbose)\r\n console.log(\"--- codegen ---\\n\" + source.replace(/^/mg, \"> \").replace(/\\t/g, \" \")); // eslint-disable-line no-console\r\n var keys = Object.keys(scope || (scope = {}));\r\n return Function.apply(null, keys.concat(\"return \" + source)).apply(null, keys.map(function(key) { return scope[key]; })); // eslint-disable-line no-new-func\r\n // ^ Creates a wrapper function with the scoped variable names as its parameters,\r\n // calls it with the respective scoped variable values ^\r\n // and returns our brand-new properly scoped function.\r\n //\r\n // This works because \"Invoking the Function constructor as a function (without using the\r\n // new operator) has the same effect as invoking it as a constructor.\"\r\n // https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Function\r\n }\r\n\r\n gen.eof = eof;\r\n\r\n return gen;\r\n}\r\n\r\nfunction sprintf(format) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n i = 0;\r\n format = format.replace(/%([dfjs])/g, function($0, $1) {\r\n switch ($1) {\r\n case \"d\":\r\n return Math.floor(args[i++]);\r\n case \"f\":\r\n return Number(args[i++]);\r\n case \"j\":\r\n return JSON.stringify(args[i++]);\r\n default:\r\n return args[i++];\r\n }\r\n });\r\n if (i !== args.length)\r\n throw Error(\"argument count mismatch\");\r\n return format;\r\n}\r\n\r\ncodegen.sprintf = sprintf;\r\ncodegen.supported = false; try { codegen.supported = codegen(\"a\",\"b\")(\"return a-b\").eof()(2,1) === 1; } catch (e) {} // eslint-disable-line no-empty\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/** @alias util.EventEmitter.prototype */\r\nvar EventEmitterPrototype = EventEmitter.prototype;\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitterPrototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = extend;\r\n\r\n/**\r\n * Lets the specified constructor extend `this` class.\r\n * @memberof util\r\n * @param {*} ctor Extending constructor\r\n * @returns {Object.} Constructor prototype\r\n * @this Function\r\n */\r\nfunction extend(ctor) {\r\n // copy static members\r\n var keys = Object.keys(this);\r\n for (var i = 0; i < keys.length; ++i)\r\n ctor[keys[i]] = this[keys[i]];\r\n // properly extend\r\n var prototype = ctor.prototype = Object.create(this.prototype);\r\n prototype.constructor = ctor;\r\n return prototype;\r\n}\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n inquire = require(7);\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} [callback] Callback function\r\n * @returns {Promise|undefined} A Promise if `callback` has been omitted\r\n */\r\nfunction fetch(path, callback) {\r\n if (!callback)\r\n return asPromise(fetch, this, path); // eslint-disable-line no-invalid-this\r\n if (fs && fs.readFile)\r\n return fs.readFile(path, \"utf8\", function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch_xhr(path, callback)\r\n : callback(err, contents);\r\n });\r\n return fetch_xhr(path, callback);\r\n}\r\n\r\nfunction fetch_xhr(path, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n return xhr.readyState === 4\r\n ? xhr.status === 0 || xhr.status === 200\r\n ? callback(null, xhr.responseText)\r\n : callback(Error(\"status \" + xhr.status))\r\n : undefined;\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n };\r\n xhr.open(\"GET\", path);\r\n xhr.send();\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0)\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return i ? String.fromCharCode.apply(String, chunk.slice(0, i)) : \"\";\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Class;\r\n\r\nvar Message = require(22),\r\n util = require(37);\r\n\r\nvar Type; // cyclic\r\n\r\n/**\r\n * Constructs a class instance, which is also a {@link Message} prototype.\r\n * @classdesc Runtime class providing the tools to create your own custom classes.\r\n * @constructor\r\n * @param {Type} type Reflected type\r\n */\r\nfunction Class(type) {\r\n return create(type);\r\n}\r\n\r\n/**\r\n * Constructs a new message prototype for the specified reflected type and sets up its constructor.\r\n * @memberof Class\r\n * @param {Type} type Reflected message type\r\n * @param {*} [ctor] Custom constructor to set up, defaults to create a generic one if omitted\r\n * @returns {Message} Message prototype\r\n */\r\nfunction create(type, ctor) {\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (!(type instanceof Type))\r\n throw TypeError(\"type must be a Type\");\r\n\r\n if (ctor) {\r\n if (typeof ctor !== \"function\")\r\n throw TypeError(\"ctor must be a function\");\r\n } else\r\n // create named constructor functions (codegen is required anyway)\r\n ctor = util.codegen(\"p\")(\"return ctor.call(this,p)\").eof(type.name, {\r\n ctor: Message\r\n });\r\n\r\n // Let's pretend...\r\n ctor.constructor = Class;\r\n\r\n // new Class() -> Message.prototype\r\n var prototype = ctor.prototype = new Message();\r\n prototype.constructor = ctor;\r\n\r\n // Static methods on Message are instance methods on Class and vice versa\r\n util.merge(ctor, Message, true);\r\n\r\n // Classes and messages reference their reflected type\r\n ctor.$type = type;\r\n prototype.$type = type;\r\n\r\n // Messages have non-enumerable default values on their prototype\r\n type.fieldsArray.forEach(function(field) {\r\n // objects on the prototype must be immmutable. users must assign a new object instance and\r\n // cannot use Array#push on empty arrays on the prototype for example, as this would modify\r\n // the value on the prototype for ALL messages of this type. Hence, these objects are frozen.\r\n prototype[field.name] = Array.isArray(field.resolve().defaultValue)\r\n ? util.emptyArray\r\n : util.isObject(field.defaultValue) && !field.long\r\n ? util.emptyObject\r\n : field.defaultValue;\r\n });\r\n\r\n // Messages have non-enumerable getters and setters for each virtual oneof field\r\n type.oneofsArray.forEach(function(oneof) {\r\n Object.defineProperty(prototype, oneof.resolve().name, {\r\n get: util.oneOfGetter(oneof.oneof),\r\n set: util.oneOfSetter(oneof.oneof)\r\n });\r\n });\r\n\r\n // Register\r\n type.ctor = ctor;\r\n\r\n return prototype;\r\n}\r\n\r\nClass.create = create;\r\n\r\n// Static methods on Message are instance methods on Class and vice versa\r\nClass.prototype = Message;\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @name Class#fromObject\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Class#fromObject}.\r\n * @name Class#from\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @name Class#toObject\r\n * @function\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @name Class#encode\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @name Class#encodeDelimited\r\n * @function\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Class#decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Class#decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Class#verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\n","\"use strict\";\r\nmodule.exports = common;\r\n\r\n/**\r\n * Provides common type definitions.\r\n * Can also be used to provide additional google types or your own custom types.\r\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\r\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\r\n * @returns {undefined}\r\n * @property {Object.} google/protobuf/any.proto Any\r\n * @property {Object.} google/protobuf/duration.proto Duration\r\n * @property {Object.} google/protobuf/empty.proto Empty\r\n * @property {Object.} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\r\n * @property {Object.} google/protobuf/timestamp.proto Timestamp\r\n * @property {Object.} google/protobuf/wrappers.proto Wrappers\r\n * @example\r\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\r\n * protobuf.common(\"descriptor\", descriptorJson);\r\n * \r\n * // manually provides a custom definition (uses my.foo namespace)\r\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\r\n */\r\nfunction common(name, json) {\r\n if (!/\\/|\\./.test(name)) {\r\n name = \"google/protobuf/\" + name + \".proto\";\r\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\r\n }\r\n common[name] = json;\r\n}\r\n\r\n// Not provided because of limited use (feel free to discuss or to provide yourself):\r\n//\r\n// google/protobuf/descriptor.proto\r\n// google/protobuf/field_mask.proto\r\n// google/protobuf/source_context.proto\r\n// google/protobuf/type.proto\r\n//\r\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\r\n// the repository or package within the google/protobuf directory.\r\n\r\ncommon(\"any\", {\r\n Any: {\r\n fields: {\r\n type_url: {\r\n type: \"string\",\r\n id: 1\r\n },\r\n value: {\r\n type: \"bytes\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\nvar timeType;\r\n\r\ncommon(\"duration\", {\r\n Duration: timeType = {\r\n fields: {\r\n seconds: {\r\n type: \"int64\",\r\n id: 1\r\n },\r\n nanos: {\r\n type: \"int32\",\r\n id: 2\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"timestamp\", {\r\n Timestamp: timeType\r\n});\r\n\r\ncommon(\"empty\", {\r\n Empty: {\r\n fields: {}\r\n }\r\n});\r\n\r\ncommon(\"struct\", {\r\n Struct: {\r\n fields: {\r\n fields: {\r\n keyType: \"string\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Value: {\r\n oneofs: {\r\n kind: {\r\n oneof: [\r\n \"nullValue\",\r\n \"numberValue\",\r\n \"stringValue\",\r\n \"boolValue\",\r\n \"structValue\",\r\n \"listValue\"\r\n ]\r\n }\r\n },\r\n fields: {\r\n nullValue: {\r\n type: \"NullValue\",\r\n id: 1\r\n },\r\n numberValue: {\r\n type: \"double\",\r\n id: 2\r\n },\r\n stringValue: {\r\n type: \"string\",\r\n id: 3\r\n },\r\n boolValue: {\r\n type: \"bool\",\r\n id: 4\r\n },\r\n structValue: {\r\n type: \"Struct\",\r\n id: 5\r\n },\r\n listValue: {\r\n type: \"ListValue\",\r\n id: 6\r\n }\r\n }\r\n },\r\n NullValue: {\r\n values: {\r\n NULL_VALUE: 0\r\n }\r\n },\r\n ListValue: {\r\n fields: {\r\n values: {\r\n rule: \"repeated\",\r\n type: \"Value\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n\r\ncommon(\"wrappers\", {\r\n DoubleValue: {\r\n fields: {\r\n value: {\r\n type: \"double\",\r\n id: 1\r\n }\r\n }\r\n },\r\n FloatValue: {\r\n fields: {\r\n value: {\r\n type: \"float\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int64Value: {\r\n fields: {\r\n value: {\r\n type: \"int64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt64Value: {\r\n fields: {\r\n value: {\r\n type: \"uint64\",\r\n id: 1\r\n }\r\n }\r\n },\r\n Int32Value: {\r\n fields: {\r\n value: {\r\n type: \"int32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n UInt32Value: {\r\n fields: {\r\n value: {\r\n type: \"uint32\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BoolValue: {\r\n fields: {\r\n value: {\r\n type: \"bool\",\r\n id: 1\r\n }\r\n }\r\n },\r\n StringValue: {\r\n fields: {\r\n value: {\r\n type: \"string\",\r\n id: 1\r\n }\r\n }\r\n },\r\n BytesValue: {\r\n fields: {\r\n value: {\r\n type: \"bytes\",\r\n id: 1\r\n }\r\n }\r\n }\r\n});\r\n","\"use strict\";\r\n/**\r\n * Runtime message from/to plain object converters.\r\n * @namespace\r\n */\r\nvar converter = exports;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\n/**\r\n * Generates a partial value fromObject conveter.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} prop Property reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) {\r\n var values = field.resolvedType.values; gen\r\n (\"switch(d%s){\", prop);\r\n Object.keys(values).forEach(function(key) {\r\n if (field.repeated && values[key] === field.typeDefault) gen\r\n (\"default:\");\r\n gen\r\n (\"case%j:\", key)\r\n (\"case %j:\", values[key])\r\n (\"m%s=%j\", prop, values[key])\r\n (\"break\");\r\n }); gen\r\n (\"}\");\r\n } else gen\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s=types[%d].fromObject(d%s)\", prop, fieldIndex, prop);\r\n } else {\r\n var isUnsigned = false;\r\n switch (field.type) {\r\n case \"double\":\r\n case \"float\":gen\r\n (\"m%s=Number(d%s)\", prop, prop);\r\n break;\r\n case \"uint32\":\r\n case \"fixed32\": gen\r\n (\"m%s=d%s>>>0\", prop, prop);\r\n break;\r\n case \"int32\":\r\n case \"sint32\":\r\n case \"sfixed32\": gen\r\n (\"m%s=d%s|0\", prop, prop);\r\n break;\r\n case \"uint64\":\r\n isUnsigned = true;\r\n // eslint-disable-line no-fallthrough\r\n case \"int64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(util.Long)\")\r\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\r\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"m%s=parseInt(d%s,10)\", prop, prop)\r\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\r\n (\"m%s=d%s\", prop, prop)\r\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\r\n (\"m%s=new util.LongBits(d%s.low,d%s.high).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\r\n break;\r\n case \"bytes\": gen\r\n (\"if(typeof d%s===\\\"string\\\")\", prop)\r\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\r\n (\"else if(d%s.length)\", prop)\r\n (\"m%s=d%s\", prop, prop);\r\n break;\r\n case \"string\": gen\r\n (\"m%s=String(d%s)\", prop, prop);\r\n break;\r\n case \"bool\": gen\r\n (\"m%s=Boolean(d%s)\", prop, prop);\r\n break;\r\n /* default: gen\r\n (\"m%s=d%s\", prop, prop);\r\n break; */\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}\r\n\r\n/**\r\n * Generates a plain object to runtime message converter specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nconverter.fromObject = function fromObject(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var gen = util.codegen(\"d\")\r\n (\"if(d instanceof this.ctor)\")\r\n (\"return d\");\r\n if (!fields.length) return gen\r\n (\"return new this.ctor\");\r\n gen\r\n (\"var m=new this.ctor\");\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n prop = util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n (\"if(d%s){\", prop)\r\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\r\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\r\n (\"m%s={}\", prop)\r\n (\"for(var ks=Object.keys(d%s),i=0;i>>3){\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case %d:\", field.id);\r\n\r\n // Map fields\r\n if (field.map) { gen\r\n\r\n (\"r.skip().pos++\") // assumes id 1 + key wireType\r\n (\"if(%s===util.emptyObject)\", ref)\r\n (\"%s={}\", ref)\r\n (\"var k=r.%s()\", field.keyType)\r\n (\"r.pos++\"); // assumes id 2 + value wireType\r\n if (types.basic[type] === undefined) gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%d].decode(r,r.uint32())\", ref, i); // can't be groups\r\n else gen\r\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\r\n\r\n // Repeated fields\r\n } else if (field.repeated) { gen\r\n\r\n (\"if(!(%s&&%s.length))\", ref, ref)\r\n (\"%s=[]\", ref);\r\n\r\n // Packable (always check for forward and backward compatiblity)\r\n if ((decoder.compat || field.packed) && types.packed[type] !== undefined) gen\r\n (\"if((t&7)===2){\")\r\n (\"var c2=r.uint32()+r.pos\")\r\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\r\n : gen(\"types[%d].encode(%s,w.uint32(%d).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\r\n}\r\n\r\n/**\r\n * Generates an encoder specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction encoder(mtype) {\r\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n var fields = mtype.fieldsArray;\r\n var oneofs = mtype.oneofsArray;\r\n var gen = util.codegen(\"m\", \"w\")\r\n (\"if(!w)\")\r\n (\"w=Writer.create()\");\r\n\r\n var i, ref;\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve();\r\n if (field.partOf) // see below for oneofs\r\n continue;\r\n var type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // Map fields\r\n if (field.map) {\r\n gen\r\n (\"if(%s&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\r\n if (wireType === undefined) gen\r\n (\"types[%d].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", i, ref); // can't be groups\r\n else gen\r\n (\".uint32(%d).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\r\n gen\r\n (\"}\")\r\n (\"}\");\r\n\r\n // Repeated fields\r\n } else if (field.repeated) {\r\n\r\n // Packed repeated\r\n if (field.packed && types.packed[type] !== undefined) { gen\r\n\r\n (\"if(%s&&%s.length&&m.hasOwnProperty(%j)){\", ref, ref, field.name)\r\n (\"w.uint32(%d).fork()\", (field.id << 3 | 2) >>> 0)\r\n (\"for(var i=0;i<%s.length;++i)\", ref)\r\n (\"w.%s(%s[i])\", type, ref)\r\n (\"w.ldelim()\")\r\n (\"}\");\r\n\r\n // Non-packed\r\n } else { gen\r\n\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j)){\", ref, field.name)\r\n (\"for(var i=0;i<%s.length;++i)\", ref);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref + \"[i]\");\r\n else gen\r\n (\"w.uint32(%d).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"}\");\r\n\r\n }\r\n\r\n // Non-repeated\r\n } else {\r\n if (!field.required) {\r\n\r\n if (field.long) gen\r\n (\"if(%s!==undefined&&%s!==null&&m.hasOwnProperty(%j))\", ref, ref, field.name);\r\n else if (field.bytes) gen\r\n (\"if(%s&&m.hasOwnProperty(%j))\", ref, field.name);\r\n else gen\r\n (\"if(%s!==undefined&&m.hasOwnProperty(%j))\", ref, field.name);\r\n\r\n }\r\n\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, i, ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n\r\n }\r\n }\r\n\r\n // oneofs\r\n for (var i = 0; i < oneofs.length; ++i) {\r\n var oneof = oneofs[i]; gen\r\n (\"switch(%s){\", \"m\" + util.safeProp(oneof.name));\r\n var oneofFields = oneof.fieldsArray;\r\n for (var j = 0; j < oneofFields.length; ++j) {\r\n var field = oneofFields[j],\r\n type = field.resolvedType instanceof Enum ? \"uint32\" : field.type,\r\n wireType = types.basic[type];\r\n ref = \"m\" + util.safeProp(field.name); gen\r\n (\"case%j:\", field.name);\r\n if (wireType === undefined)\r\n genTypePartial(gen, field, fields.indexOf(field), ref);\r\n else gen\r\n (\"w.uint32(%d).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\r\n gen\r\n (\"break\");\r\n } gen\r\n (\"}\");\r\n }\r\n \r\n return gen\r\n (\"return w\");\r\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\r\n}","\"use strict\";\r\nmodule.exports = Enum;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Enum.prototype */\r\nvar EnumPrototype = ReflectionObject.extend(Enum);\r\n\r\nEnum.className = \"Enum\";\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new enum instance.\r\n * @classdesc Reflected enum.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {Object.} [values] Enum values as an object, by name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Enum(name, values, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Enum values by id.\r\n * @type {Object.}\r\n */\r\n this.valuesById = {};\r\n\r\n /**\r\n * Enum values by name.\r\n * @type {Object.}\r\n */\r\n this.values = Object.create(this.valuesById); // toJSON, marker\r\n\r\n /**\r\n * Value comment texts, if any.\r\n * @type {Object.}\r\n */\r\n this.comments = {};\r\n\r\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\r\n // compatible enum. This is used by pbts to write actual enum definitions that work for\r\n // static and reflection code alike instead of emitting generic object definitions.\r\n\r\n var self = this;\r\n Object.keys(values || {}).forEach(function(key) {\r\n self.valuesById[self.values[key] = values[key]] = key;\r\n });\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes an enum.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes an enum\r\n */\r\nEnum.testJSON = function testJSON(json) {\r\n return Boolean(json && json.values);\r\n};\r\n\r\n/**\r\n * Creates an enum from JSON.\r\n * @param {string} name Enum name\r\n * @param {Object.} json JSON object\r\n * @returns {Enum} Created enum\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nEnum.fromJSON = function fromJSON(name, json) {\r\n return new Enum(name, json.values, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nEnumPrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n values : this.values\r\n };\r\n};\r\n\r\n/**\r\n * Adds a value to this enum.\r\n * @param {string} name Value name\r\n * @param {number} id Value id\r\n * @param {?string} comment Comment, if any\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a value with this name or id\r\n */\r\nEnumPrototype.add = function(name, id, comment) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (!util.isInteger(id))\r\n throw TypeError(\"id must be an integer\");\r\n\r\n if (this.values[name] !== undefined)\r\n throw Error(\"duplicate name\");\r\n\r\n if (this.valuesById[id] !== undefined)\r\n throw Error(\"duplicate id\");\r\n\r\n this.valuesById[this.values[name] = id] = name;\r\n this.comments[name] = comment || null;\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a value from this enum\r\n * @param {string} name Value name\r\n * @returns {Enum} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `name` is not a name of this enum\r\n */\r\nEnumPrototype.remove = function(name) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n var val = this.values[name];\r\n if (val === undefined)\r\n throw Error(\"name does not exist\");\r\n\r\n delete this.valuesById[val];\r\n delete this.values[name];\r\n delete this.comments[name];\r\n\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Field;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = ReflectionObject.extend(Field);\r\n\r\nField.className = \"Field\";\r\n\r\nvar Enum = require(16),\r\n types = require(36),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n MapField; // cyclic\r\n\r\n/**\r\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\r\n * @classdesc Reflected message field.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} type Value type\r\n * @param {string|Object.} [rule=\"optional\"] Field rule\r\n * @param {string|Object.} [extend] Extended type if different from parent\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Field(name, id, type, rule, extend, options) {\r\n\r\n if (util.isObject(rule)) {\r\n options = rule;\r\n rule = extend = undefined;\r\n } else if (util.isObject(extend)) {\r\n options = extend;\r\n extend = undefined;\r\n }\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n if (!util.isInteger(id) || id < 0)\r\n throw TypeError(\"id must be a non-negative integer\");\r\n\r\n if (!util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n\r\n if (rule !== undefined && !/^required|optional|repeated$/.test(rule = rule.toString().toLowerCase()))\r\n throw TypeError(\"rule must be a string rule\");\r\n\r\n if (extend !== undefined && !util.isString(extend))\r\n throw TypeError(\"extend must be a string\");\r\n\r\n /**\r\n * Field rule, if any.\r\n * @type {string|undefined}\r\n */\r\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\r\n\r\n /**\r\n * Field type.\r\n * @type {string}\r\n */\r\n this.type = type; // toJSON\r\n\r\n /**\r\n * Unique field id.\r\n * @type {number}\r\n */\r\n this.id = id; // toJSON, marker\r\n\r\n /**\r\n * Extended type if different from parent.\r\n * @type {string|undefined}\r\n */\r\n this.extend = extend || undefined; // toJSON\r\n\r\n /**\r\n * Whether this field is required.\r\n * @type {boolean}\r\n */\r\n this.required = rule === \"required\";\r\n\r\n /**\r\n * Whether this field is optional.\r\n * @type {boolean}\r\n */\r\n this.optional = !this.required;\r\n\r\n /**\r\n * Whether this field is repeated.\r\n * @type {boolean}\r\n */\r\n this.repeated = rule === \"repeated\";\r\n\r\n /**\r\n * Whether this field is a map or not.\r\n * @type {boolean}\r\n */\r\n this.map = false;\r\n\r\n /**\r\n * Message this field belongs to.\r\n * @type {?Type}\r\n */\r\n this.message = null;\r\n\r\n /**\r\n * OneOf this field belongs to, if any,\r\n * @type {?OneOf}\r\n */\r\n this.partOf = null;\r\n\r\n /**\r\n * The field type's default value.\r\n * @type {*}\r\n */\r\n this.typeDefault = null;\r\n\r\n /**\r\n * The field's default value on prototypes.\r\n * @type {*}\r\n */\r\n this.defaultValue = null;\r\n\r\n /**\r\n * Whether this field's value should be treated as a long.\r\n * @type {boolean}\r\n */\r\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\r\n\r\n /**\r\n * Whether this field's value is a buffer.\r\n * @type {boolean}\r\n */\r\n this.bytes = type === \"bytes\";\r\n\r\n /**\r\n * Resolved type if not a basic type.\r\n * @type {?(Type|Enum)}\r\n */\r\n this.resolvedType = null;\r\n\r\n /**\r\n * Sister-field within the extended type if a declaring extension field.\r\n * @type {?Field}\r\n */\r\n this.extensionField = null;\r\n\r\n /**\r\n * Sister-field within the declaring namespace if an extended field.\r\n * @type {?Field}\r\n */\r\n this.declaringField = null;\r\n\r\n /**\r\n * Internally remembers whether this field is packed.\r\n * @type {?boolean}\r\n * @private\r\n */\r\n this._packed = null;\r\n}\r\n\r\n/**\r\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\r\n * @name Field#packed\r\n * @type {boolean}\r\n * @readonly\r\n */\r\nObject.defineProperty(FieldPrototype, \"packed\", {\r\n get: function() {\r\n // defaults to packed=true if not explicity set to false\r\n if (this._packed === null)\r\n this._packed = this.getOption(\"packed\") !== false;\r\n return this._packed;\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (name === \"packed\")\r\n this._packed = null;\r\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\r\n};\r\n\r\n/**\r\n * Tests if the specified JSON object describes a field.\r\n * @param {*} json Any JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nField.testJSON = function testJSON(json) {\r\n return Boolean(json && json.id !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {Field} Created field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nField.fromJSON = function fromJSON(name, json) {\r\n if (json.keyType !== undefined) {\r\n if (!MapField)\r\n MapField = require(21);\r\n return MapField.fromJSON(name, json);\r\n }\r\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n rule : this.rule !== \"optional\" && this.rule || undefined,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Resolves this field's type references.\r\n * @returns {Field} `this`\r\n * @throws {Error} If any reference cannot be resolved\r\n */\r\nFieldPrototype.resolve = function resolve() {\r\n\r\n if (this.resolved)\r\n return this;\r\n\r\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\r\n\r\n /* istanbul ignore if */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n if (this.resolvedType = this.parent.lookup(this.type, Type))\r\n this.typeDefault = null;\r\n else if (this.resolvedType = this.parent.lookup(this.type, Enum))\r\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\r\n else\r\n throw Error(\"unresolvable field type: \" + this.type);\r\n }\r\n\r\n // use explicitly set default value if present\r\n if (this.options && this.options[\"default\"] !== undefined) {\r\n this.typeDefault = this.options[\"default\"];\r\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\r\n this.typeDefault = this.resolvedType.values[this.typeDefault];\r\n }\r\n\r\n // convert to internal data type if necesssary\r\n if (this.long) {\r\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\r\n\r\n /* istanbul ignore else */\r\n if (Object.freeze)\r\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\r\n\r\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\r\n var buf;\r\n if (util.base64.test(this.typeDefault))\r\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\r\n else\r\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\r\n this.typeDefault = buf;\r\n }\r\n\r\n // take special care of maps and repeated fields\r\n if (this.map)\r\n this.defaultValue = util.emptyObject;\r\n else if (this.repeated)\r\n this.defaultValue = util.emptyArray;\r\n else\r\n this.defaultValue = this.typeDefault;\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(19);\r\n\r\nprotobuf.build = \"light\";\r\n\r\n/**\r\n * A node-style callback as used by {@link load} and {@link Root#load}.\r\n * @typedef LoadCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {Root} [root] Root, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n */\r\nfunction load(filename, root, callback) {\r\n if (typeof root === \"function\") {\r\n callback = root;\r\n root = new protobuf.Root();\r\n } else if (!root)\r\n root = new protobuf.Root();\r\n return root.load(filename, callback);\r\n}\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @see {@link Root#load}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\r\n * @name load\r\n * @function\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Promise} Promise\r\n * @see {@link Root#load}\r\n * @variation 3\r\n */\r\n// function load(filename:string, [root:Root]):Promise\r\n\r\nprotobuf.load = load;\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\r\n * @param {string|string[]} filename One or multiple files to load\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n * @see {@link Root#loadSync}\r\n */\r\nfunction loadSync(filename, root) {\r\n if (!root)\r\n root = new protobuf.Root();\r\n return root.loadSync(filename);\r\n}\r\n\r\nprotobuf.loadSync = loadSync;\r\n\r\n// Serialization\r\nprotobuf.encoder = require(15);\r\nprotobuf.decoder = require(14);\r\nprotobuf.verifier = require(40);\r\nprotobuf.converter = require(13);\r\n\r\n// Reflection\r\nprotobuf.ReflectionObject = require(25);\r\nprotobuf.Namespace = require(24);\r\nprotobuf.Root = require(30);\r\nprotobuf.Enum = require(16);\r\nprotobuf.Type = require(35);\r\nprotobuf.Field = require(17);\r\nprotobuf.OneOf = require(26);\r\nprotobuf.MapField = require(21);\r\nprotobuf.Service = require(33);\r\nprotobuf.Method = require(23);\r\n\r\n// Runtime\r\nprotobuf.Class = require(11);\r\nprotobuf.Message = require(22);\r\n\r\n// Utility\r\nprotobuf.types = require(36);\r\nprotobuf.util = require(37);\r\n","\"use strict\";\r\nvar protobuf = global.protobuf = exports;\r\n\r\n/**\r\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\r\n * @name build\r\n * @type {string}\r\n */\r\nprotobuf.build = \"minimal\";\r\n\r\n/**\r\n * Named roots.\r\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\r\n * Can also be used manually to make roots available accross modules.\r\n * @name roots\r\n * @type {Object.}\r\n * @example\r\n * // pbjs -r myroot -o compiled.js ...\r\n * \r\n * // in another module:\r\n * require(\"./compiled.js\");\r\n * \r\n * // in any subsequent module:\r\n * var root = protobuf.roots[\"myroot\"];\r\n */\r\nprotobuf.roots = {};\r\n\r\n// Serialization\r\nprotobuf.Writer = require(41);\r\nprotobuf.BufferWriter = require(42);\r\nprotobuf.Reader = require(28);\r\nprotobuf.BufferReader = require(29);\r\n\r\n// Utility\r\nprotobuf.util = require(39);\r\nprotobuf.rpc = require(31);\r\nprotobuf.configure = configure;\r\n\r\n/* istanbul ignore next */\r\n/**\r\n * Reconfigures the library according to the environment.\r\n * @returns {undefined}\r\n */\r\nfunction configure() {\r\n protobuf.Reader._configure();\r\n}\r\n\r\n// assumes that loading \"long\" / define itself is asynchronous so that other builds can safely\r\n// continue populating `protobuf`. will see a BOOM eventually if this assumption is wrong:\r\n/* istanbul ignore next */\r\nif (typeof define === \"function\" && define.amd)\r\n define([\"long\"], function(Long) {\r\n if (Long) {\r\n protobuf.util.Long = Long;\r\n configure();\r\n }\r\n return protobuf;\r\n });\r\n","\"use strict\";\r\nvar protobuf = module.exports = require(18);\r\n\r\nprotobuf.build = \"full\";\r\n\r\n// Parser\r\nprotobuf.tokenize = require(34);\r\nprotobuf.parse = require(27);\r\nprotobuf.common = require(12);\r\n\r\nprotobuf.Root._configure(protobuf.parse, protobuf.common);\r\n","\"use strict\";\r\nmodule.exports = MapField;\r\n\r\n// extends Field\r\nvar Field = require(17);\r\n/** @alias Field.prototype */\r\nvar FieldPrototype = Field.prototype;\r\n/** @alias MapField.prototype */\r\nvar MapFieldPrototype = Field.extend(MapField);\r\n\r\nMapField.className = \"MapField\";\r\n\r\nvar types = require(36),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new map field instance.\r\n * @classdesc Reflected map field.\r\n * @extends Field\r\n * @constructor\r\n * @param {string} name Unique name within its namespace\r\n * @param {number} id Unique id within its namespace\r\n * @param {string} keyType Key type\r\n * @param {string} type Value type\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction MapField(name, id, keyType, type, options) {\r\n Field.call(this, name, id, type, options);\r\n\r\n /* istanbul ignore next */\r\n if (!util.isString(keyType))\r\n throw TypeError(\"keyType must be a string\");\r\n\r\n /**\r\n * Key type.\r\n * @type {string}\r\n */\r\n this.keyType = keyType; // toJSON, marker\r\n\r\n /**\r\n * Resolved key type if not a basic type.\r\n * @type {?ReflectionObject}\r\n */\r\n this.resolvedKeyType = null;\r\n\r\n // Overrides Field#map\r\n this.map = true;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a map field.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a field\r\n */\r\nMapField.testJSON = function testJSON(json) {\r\n return Field.testJSON(json) && json.keyType !== undefined;\r\n};\r\n\r\n/**\r\n * Constructs a map field from JSON.\r\n * @param {string} name Field name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created map field\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMapField.fromJSON = function fromJSON(name, json) {\r\n return new MapField(name, json.id, json.keyType, json.type, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.toJSON = function toJSON() {\r\n return {\r\n keyType : this.keyType,\r\n type : this.type,\r\n id : this.id,\r\n extend : this.extend,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMapFieldPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\r\n if (types.mapKey[this.keyType] === undefined)\r\n throw Error(\"invalid key type: \" + this.keyType);\r\n\r\n return FieldPrototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Message;\r\n\r\nvar util = require(37);\r\n\r\n/**\r\n * Constructs a new message instance.\r\n *\r\n * This function should also be called from your custom constructors, i.e. `Message.call(this, properties)`.\r\n * @classdesc Abstract runtime message.\r\n * @constructor\r\n * @param {Object.} [properties] Properties to set\r\n * @see {@link Class.create}\r\n */\r\nfunction Message(properties) {\r\n if (properties) {\r\n var keys = Object.keys(properties);\r\n for (var i = 0; i < keys.length; ++i)\r\n this[keys[i]] = properties[keys[i]];\r\n }\r\n}\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message.$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Reference to the reflected type.\r\n * @name Message#$type\r\n * @type {Type}\r\n * @readonly\r\n */\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encode = function encode(message, writer) {\r\n return this.$type.encode(message, writer);\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its length as a varint.\r\n * @param {Message|Object} message Message to encode\r\n * @param {Writer} [writer] Writer to use\r\n * @returns {Writer} Writer\r\n */\r\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.$type.encodeDelimited(message, writer);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @name Message.decode\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decode = function decode(reader) {\r\n return this.$type.decode(reader);\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its length as a varint.\r\n * @name Message.decodeDelimited\r\n * @function\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\r\n * @returns {Message} Decoded message\r\n */\r\nMessage.decodeDelimited = function decodeDelimited(reader) {\r\n return this.$type.decodeDelimited(reader);\r\n};\r\n\r\n/**\r\n * Verifies a message of this type.\r\n * @name Message.verify\r\n * @function\r\n * @param {Message|Object} message Message or plain object to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nMessage.verify = function verify(message) {\r\n return this.$type.verify(message);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.fromObject = function fromObject(object) {\r\n return this.$type.fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Message.fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nMessage.from = Message.fromObject;\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.toObject = function toObject(message, options) {\r\n return this.$type.toObject(message, options);\r\n};\r\n\r\n/**\r\n * Creates a plain object from this message. Also converts values to other types if specified.\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nMessage.prototype.toObject = function toObject(options) {\r\n return this.$type.toObject(this, options);\r\n};\r\n\r\n/**\r\n * Converts this message to JSON.\r\n * @returns {Object.} JSON object\r\n */\r\nMessage.prototype.toJSON = function toJSON() {\r\n return this.$type.toObject(this, util.toJSONOptions);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Method;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias Method.prototype */\r\nvar MethodPrototype = ReflectionObject.extend(Method);\r\n\r\nMethod.className = \"Method\";\r\n\r\nvar Type = require(35),\r\n util = require(37);\r\n\r\n/**\r\n * Constructs a new service method instance.\r\n * @classdesc Reflected service method.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Method name\r\n * @param {string|undefined} type Method type, usually `\"rpc\"`\r\n * @param {string} requestType Request message type\r\n * @param {string} responseType Response message type\r\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\r\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options) {\r\n /* istanbul ignore next */\r\n if (util.isObject(requestStream)) {\r\n options = requestStream;\r\n requestStream = responseStream = undefined;\r\n /* istanbul ignore next */\r\n } else if (util.isObject(responseStream)) {\r\n options = responseStream;\r\n responseStream = undefined;\r\n }\r\n\r\n /* istanbul ignore next */\r\n if (type && !util.isString(type))\r\n throw TypeError(\"type must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(requestType))\r\n throw TypeError(\"requestType must be a string\");\r\n /* istanbul ignore next */\r\n if (!util.isString(responseType))\r\n throw TypeError(\"responseType must be a string\");\r\n\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Method type.\r\n * @type {string}\r\n */\r\n this.type = type || \"rpc\"; // toJSON\r\n\r\n /**\r\n * Request type.\r\n * @type {string}\r\n */\r\n this.requestType = requestType; // toJSON, marker\r\n\r\n /**\r\n * Whether requests are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.requestStream = requestStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Response type.\r\n * @type {string}\r\n */\r\n this.responseType = responseType; // toJSON\r\n\r\n /**\r\n * Whether responses are streamed or not.\r\n * @type {boolean|undefined}\r\n */\r\n this.responseStream = responseStream ? true : undefined; // toJSON\r\n\r\n /**\r\n * Resolved request type.\r\n * @type {?Type}\r\n */\r\n this.resolvedRequestType = null;\r\n\r\n /**\r\n * Resolved response type.\r\n * @type {?Type}\r\n */\r\n this.resolvedResponseType = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service method.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a map field\r\n */\r\nMethod.testJSON = function testJSON(json) {\r\n return Boolean(json && json.requestType !== undefined);\r\n};\r\n\r\n/**\r\n * Constructs a service method from JSON.\r\n * @param {string} name Method name\r\n * @param {Object.} json JSON object\r\n * @returns {Method} Created method\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nMethod.fromJSON = function fromJSON(name, json) {\r\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.toJSON = function toJSON() {\r\n return {\r\n type : this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\r\n requestType : this.requestType,\r\n requestStream : this.requestStream,\r\n responseType : this.responseType,\r\n responseStream : this.responseStream,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nMethodPrototype.resolve = function resolve() {\r\n\r\n /* istanbul ignore if */\r\n if (this.resolved)\r\n return this;\r\n /* istanbul ignore if */\r\n if (!(this.resolvedRequestType = this.parent.lookup(this.requestType, Type)))\r\n throw Error(\"unresolvable request type: \" + this.requestType);\r\n /* istanbul ignore if */\r\n if (!(this.resolvedResponseType = this.parent.lookup(this.responseType, Type)))\r\n throw Error(\"unresolvable response type: \" + this.requestType);\r\n\r\n return ReflectionObject.prototype.resolve.call(this);\r\n};\r\n","\"use strict\";\r\nmodule.exports = Namespace;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias NamespaceBase.prototype */\r\nvar NamespacePrototype = ReflectionObject.extend(Namespace);\r\n\r\nNamespace.className = \"Namespace\";\r\n\r\nvar Enum = require(16),\r\n Field = require(17),\r\n util = require(37);\r\n\r\nvar Type, // cyclic\r\n Service; // cyclic\r\n\r\nvar nestedTypes, // contains cyclics\r\n nestedError;\r\n\r\nfunction initNested() {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n nestedTypes = [ Enum, Type, Service, Field, Namespace ];\r\n nestedError = \"one of \" + nestedTypes.map(function(ctor) { return ctor.name; }).join(\", \");\r\n}\r\n\r\n/**\r\n * Constructs a new namespace instance.\r\n * @name Namespace\r\n * @classdesc Reflected namespace.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n */\r\n\r\n/**\r\n * Tests if the specified JSON object describes not another reflection object.\r\n * @memberof Namespace\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes not another reflection object\r\n */\r\nNamespace.testJSON = function testJSON(json) {\r\n return Boolean(json\r\n && !json.fields // Type\r\n && !json.values // Enum\r\n && json.id === undefined // Field, MapField\r\n && !json.oneof // OneOf\r\n && !json.methods // Service\r\n && json.requestType === undefined // Method\r\n );\r\n};\r\n\r\n/**\r\n * Constructs a namespace from JSON.\r\n * @memberof Namespace\r\n * @function\r\n * @param {string} name Namespace name\r\n * @param {Object.} json JSON object\r\n * @returns {Namespace} Created namespace\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nNamespace.fromJSON = function fromJSON(name, json) {\r\n return new Namespace(name, json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Converts an array of reflection objects to JSON.\r\n * @memberof Namespace\r\n * @param {ReflectionObject[]} array Object array\r\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\r\n */\r\nfunction arrayToJSON(array) {\r\n if (!(array && array.length))\r\n return undefined;\r\n var obj = {};\r\n for (var i = 0; i < array.length; ++i)\r\n obj[array[i].name] = array[i].toJSON();\r\n return obj;\r\n}\r\n\r\nNamespace.arrayToJSON = arrayToJSON;\r\n\r\n/**\r\n * Not an actual constructor. Use {@link Namespace} instead.\r\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\r\n * @exports NamespaceBase\r\n * @extends ReflectionObject\r\n * @abstract\r\n * @constructor\r\n * @param {string} name Namespace name\r\n * @param {Object.} [options] Declared options\r\n * @see {@link Namespace}\r\n */\r\nfunction Namespace(name, options) {\r\n ReflectionObject.call(this, name, options);\r\n\r\n /**\r\n * Nested objects by name.\r\n * @type {Object.|undefined}\r\n */\r\n this.nested = undefined; // toJSON\r\n\r\n /**\r\n * Cached nested objects as an array.\r\n * @type {?ReflectionObject[]}\r\n * @private\r\n */\r\n this._nestedArray = null;\r\n}\r\n\r\nfunction clearCache(namespace) {\r\n namespace._nestedArray = null;\r\n return namespace;\r\n}\r\n\r\n/**\r\n * Nested objects of this namespace as an array for iteration.\r\n * @name NamespaceBase#nestedArray\r\n * @type {ReflectionObject[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(NamespacePrototype, \"nestedArray\", {\r\n get: function() {\r\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\r\n }\r\n});\r\n\r\n/**\r\n * @override\r\n */\r\nNamespacePrototype.toJSON = function toJSON() {\r\n return {\r\n options : this.options,\r\n nested : arrayToJSON(this.nestedArray)\r\n };\r\n};\r\n\r\n/**\r\n * Adds nested elements to this namespace from JSON.\r\n * @param {Object.} nestedJson Nested JSON\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.addJSON = function addJSON(nestedJson) {\r\n var ns = this;\r\n /* istanbul ignore else */\r\n if (nestedJson) {\r\n if (!nestedTypes)\r\n initNested();\r\n Object.keys(nestedJson).forEach(function(nestedName) {\r\n var nested = nestedJson[nestedName];\r\n for (var j = 0; j < nestedTypes.length; ++j)\r\n if (nestedTypes[j].testJSON(nested))\r\n return ns.add(nestedTypes[j].fromJSON(nestedName, nested));\r\n /* istanbul ignore next */\r\n throw TypeError(\"nested.\" + nestedName + \" must be JSON for \" + nestedError);\r\n });\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets the nested object of the specified name.\r\n * @param {string} name Nested object name\r\n * @returns {?ReflectionObject} The reflection object or `null` if it doesn't exist\r\n */\r\nNamespacePrototype.get = function get(name) {\r\n if (this.nested === undefined) // prevents deopt\r\n return null;\r\n return this.nested[name] || null;\r\n};\r\n\r\n/**\r\n * Gets the values of the nested {@link Enum|enum} of the specified name.\r\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\r\n * @param {string} name Nested enum name\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If there is no such enum\r\n */\r\nNamespacePrototype.getEnum = function getEnum(name) {\r\n if (this.nested && this.nested[name] instanceof Enum)\r\n return this.nested[name].values;\r\n throw Error(\"no such enum\");\r\n};\r\n\r\n/**\r\n * Adds a nested object to this namespace.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name\r\n */\r\nNamespacePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (!nestedTypes)\r\n initNested();\r\n /* istanbul ignore next */\r\n if (!object || nestedTypes.indexOf(object.constructor) < 0)\r\n throw TypeError(\"object must be \" + nestedError);\r\n /* istanbul ignore next */\r\n if (object instanceof Field && object.extend === undefined)\r\n throw TypeError(\"object must be an extension field when not part of a type\");\r\n\r\n if (!this.nested)\r\n this.nested = {};\r\n else {\r\n var prev = this.get(object.name);\r\n if (prev) {\r\n // initNested above already initializes Type and Service\r\n /* istanbul ignore else */\r\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\r\n // replace plain namespace but keep existing nested elements and options\r\n var nested = prev.nestedArray;\r\n for (var i = 0; i < nested.length; ++i)\r\n object.add(nested[i]);\r\n this.remove(prev);\r\n if (!this.nested)\r\n this.nested = {};\r\n object.setOptions(prev.options, true);\r\n\r\n } else\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n }\r\n }\r\n this.nested[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this namespace.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Namespace} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this namespace\r\n */\r\nNamespacePrototype.remove = function remove(object) {\r\n\r\n /* istanbul ignore next */\r\n if (!(object instanceof ReflectionObject))\r\n throw TypeError(\"object must be a ReflectionObject\");\r\n /* istanbul ignore next */\r\n if (object.parent !== this || !this.nested)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.nested[object.name];\r\n if (!Object.keys(this.nested).length)\r\n this.nested = undefined;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n};\r\n\r\n/**\r\n * Defines additial namespaces within this one if not yet existing.\r\n * @param {string|string[]} path Path to create\r\n * @param {*} [json] Nested types to create from JSON\r\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\r\n */\r\nNamespacePrototype.define = function define(path, json) {\r\n\r\n if (util.isString(path)) {\r\n path = path.split(\".\");\r\n /* istanbul ignore next */\r\n } else if (!Array.isArray(path))\r\n throw TypeError(\"illegal path\");\r\n if (path && path.length && path[0] === \"\")\r\n throw Error(\"path must be relative\");\r\n\r\n var ptr = this;\r\n while (path.length > 0) {\r\n var part = path.shift();\r\n if (ptr.nested && ptr.nested[part]) {\r\n ptr = ptr.nested[part];\r\n /* istanbul ignore next */\r\n if (!(ptr instanceof Namespace))\r\n throw Error(\"path conflicts with non-namespace objects\");\r\n } else\r\n ptr.add(ptr = new Namespace(part));\r\n }\r\n if (json)\r\n ptr.addJSON(json);\r\n return ptr;\r\n};\r\n\r\n/**\r\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\r\n * @returns {Namespace} `this`\r\n */\r\nNamespacePrototype.resolveAll = function resolveAll() {\r\n var nested = this.nestedArray, i = 0;\r\n while (i < nested.length)\r\n if (nested[i] instanceof Namespace)\r\n nested[i++].resolveAll();\r\n else\r\n nested[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @param {string|string[]} path Path to look up\r\n * @param {function(new: ReflectionObject)} filterType Filter type, one of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\r\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n */\r\nNamespacePrototype.lookup = function lookup(path, filterType, parentAlreadyChecked) {\r\n\r\n /* istanbul ignore next */\r\n if (typeof filterType === \"boolean\") {\r\n parentAlreadyChecked = filterType;\r\n filterType = undefined;\r\n }\r\n\r\n if (util.isString(path) && path.length) {\r\n if (path === \".\")\r\n return this.root;\r\n path = path.split(\".\");\r\n } else if (!path.length)\r\n return this;\r\n\r\n // Start at root if path is absolute\r\n if (path[0] === \"\")\r\n return this.root.lookup(path.slice(1), filterType);\r\n // Test if the first part matches any nested object, and if so, traverse if path contains more\r\n var found = this.get(path[0]);\r\n if (found) {\r\n if (path.length === 1) {\r\n if (!filterType || found instanceof filterType)\r\n return found;\r\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterType, true)))\r\n return found;\r\n }\r\n // If there hasn't been a match, try again at the parent\r\n if (this.parent === null || parentAlreadyChecked)\r\n return null;\r\n return this.parent.lookup(path, filterType);\r\n};\r\n\r\n/**\r\n * Looks up the reflection object at the specified path, relative to this namespace.\r\n * @name NamespaceBase#lookup\r\n * @function\r\n * @param {string|string[]} path Path to look up\r\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\r\n * @returns {?ReflectionObject} Looked up object or `null` if none could be found\r\n * @variation 2\r\n */\r\n// lookup(path: string, [parentAlreadyChecked: boolean])\r\n\r\n/**\r\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Type} Looked up type\r\n * @throws {Error} If `path` does not point to a type\r\n */\r\nNamespacePrototype.lookupType = function lookupType(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Type)\r\n Type = require(35);\r\n\r\n var found = this.lookup(path, Type);\r\n if (!found)\r\n throw Error(\"no such type\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Service} Looked up service\r\n * @throws {Error} If `path` does not point to a service\r\n */\r\nNamespacePrototype.lookupService = function lookupService(path) {\r\n\r\n /* istanbul ignore next */\r\n if (!Service)\r\n Service = require(33);\r\n\r\n var found = this.lookup(path, Service);\r\n if (!found)\r\n throw Error(\"no such service\");\r\n return found;\r\n};\r\n\r\n/**\r\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\r\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it returns the enum's values directly and throws instead of returning `null`.\r\n * @param {string|string[]} path Path to look up\r\n * @returns {Object.} Enum values\r\n * @throws {Error} If `path` does not point to an enum\r\n */\r\nNamespacePrototype.lookupEnum = function lookupEnum(path) {\r\n var found = this.lookup(path, Enum);\r\n if (!found)\r\n throw Error(\"no such enum\");\r\n return found.values;\r\n};\r\n","\"use strict\";\r\nmodule.exports = ReflectionObject;\r\n\r\nvar util = require(37);\r\n\r\nReflectionObject.className = \"ReflectionObject\";\r\nReflectionObject.extend = util.extend;\r\n\r\nvar Root; // cyclic\r\n\r\n/**\r\n * Constructs a new reflection object instance.\r\n * @classdesc Base class of all reflection objects.\r\n * @constructor\r\n * @param {string} name Object name\r\n * @param {Object.} [options] Declared options\r\n * @abstract\r\n */\r\nfunction ReflectionObject(name, options) {\r\n\r\n if (!util.isString(name))\r\n throw TypeError(\"name must be a string\");\r\n\r\n if (options && !util.isObject(options))\r\n throw TypeError(\"options must be an object\");\r\n\r\n /**\r\n * Options.\r\n * @type {Object.|undefined}\r\n */\r\n this.options = options; // toJSON\r\n\r\n /**\r\n * Unique name within its namespace.\r\n * @type {string}\r\n */\r\n this.name = name;\r\n\r\n /**\r\n * Parent namespace.\r\n * @type {?Namespace}\r\n */\r\n this.parent = null;\r\n\r\n /**\r\n * Whether already resolved or not.\r\n * @type {boolean}\r\n */\r\n this.resolved = false;\r\n\r\n /**\r\n * Comment text, if any.\r\n * @type {?string}\r\n */\r\n this.comment = null;\r\n}\r\n\r\n/** @alias ReflectionObject.prototype */\r\nvar ReflectionObjectPrototype = ReflectionObject.prototype;\r\n\r\nObject.defineProperties(ReflectionObjectPrototype, {\r\n\r\n /**\r\n * Reference to the root namespace.\r\n * @name ReflectionObject#root\r\n * @type {Root}\r\n * @readonly\r\n */\r\n root: {\r\n get: function() {\r\n var ptr = this;\r\n while (ptr.parent !== null)\r\n ptr = ptr.parent;\r\n return ptr;\r\n }\r\n },\r\n\r\n /**\r\n * Full name including leading dot.\r\n * @name ReflectionObject#fullName\r\n * @type {string}\r\n * @readonly\r\n */\r\n fullName: {\r\n get: function() {\r\n var path = [ this.name ],\r\n ptr = this.parent;\r\n while (ptr) {\r\n path.unshift(ptr.name);\r\n ptr = ptr.parent;\r\n }\r\n return path.join(\".\");\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Converts this reflection object to its JSON representation.\r\n * @returns {Object.} JSON object\r\n * @abstract\r\n */\r\nReflectionObjectPrototype.toJSON = /* istanbul ignore next */ function toJSON() {\r\n throw Error(); // not implemented, shouldn't happen\r\n};\r\n\r\n/**\r\n * Called when this object is added to a parent.\r\n * @param {ReflectionObject} parent Parent added to\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onAdd = function onAdd(parent) {\r\n if (this.parent && this.parent !== parent)\r\n this.parent.remove(this);\r\n this.parent = parent;\r\n this.resolved = false;\r\n var root = parent.root;\r\n if (!Root)\r\n Root = require(30);\r\n if (root instanceof Root)\r\n root._handleAdd(this);\r\n};\r\n\r\n/**\r\n * Called when this object is removed from a parent.\r\n * @param {ReflectionObject} parent Parent removed from\r\n * @returns {undefined}\r\n */\r\nReflectionObjectPrototype.onRemove = function onRemove(parent) {\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n var root = parent.root;\r\n if (root instanceof Root)\r\n root._handleRemove(this);\r\n this.parent = null;\r\n this.resolved = false;\r\n};\r\n\r\n/**\r\n * Resolves this objects type references.\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.resolve = function resolve() {\r\n if (this.resolved)\r\n return this;\r\n\r\n /* istanbul ignore next */\r\n if (!Root)\r\n Root = require(30);\r\n\r\n if (this.root instanceof Root)\r\n this.resolved = true; // only if part of a root\r\n return this;\r\n};\r\n\r\n/**\r\n * Gets an option value.\r\n * @param {string} name Option name\r\n * @returns {*} Option value or `undefined` if not set\r\n */\r\nReflectionObjectPrototype.getOption = function getOption(name) {\r\n if (this.options)\r\n return this.options[name];\r\n return undefined;\r\n};\r\n\r\n/**\r\n * Sets an option.\r\n * @param {string} name Option name\r\n * @param {*} value Option value\r\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOption = function setOption(name, value, ifNotSet) {\r\n if (!ifNotSet || !this.options || this.options[name] === undefined)\r\n (this.options || (this.options = {}))[name] = value;\r\n return this;\r\n};\r\n\r\n/**\r\n * Sets multiple options.\r\n * @param {Object.} options Options to set\r\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\r\n * @returns {ReflectionObject} `this`\r\n */\r\nReflectionObjectPrototype.setOptions = function setOptions(options, ifNotSet) {\r\n if (options)\r\n Object.keys(options).forEach(function(name) {\r\n this.setOption(name, options[name], ifNotSet);\r\n }, this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Converts this instance to its string representation.\r\n * @returns {string} Class name[, space, full name]\r\n */\r\nReflectionObjectPrototype.toString = function toString() {\r\n var className = this.constructor.className,\r\n fullName = this.fullName;\r\n if (fullName.length)\r\n return className + \" \" + fullName;\r\n return className;\r\n};\r\n","\"use strict\";\r\nmodule.exports = OneOf;\r\n\r\n// extends ReflectionObject\r\nvar ReflectionObject = require(25);\r\n/** @alias OneOf.prototype */\r\nvar OneOfPrototype = ReflectionObject.extend(OneOf);\r\n\r\nOneOf.className = \"OneOf\";\r\n\r\nvar Field = require(17);\r\n\r\n/**\r\n * Constructs a new oneof instance.\r\n * @classdesc Reflected oneof.\r\n * @extends ReflectionObject\r\n * @constructor\r\n * @param {string} name Oneof name\r\n * @param {string[]|Object} [fieldNames] Field names\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction OneOf(name, fieldNames, options) {\r\n if (!Array.isArray(fieldNames)) {\r\n options = fieldNames;\r\n fieldNames = undefined;\r\n }\r\n ReflectionObject.call(this, name, options);\r\n\r\n /* istanbul ignore next */\r\n if (fieldNames && !Array.isArray(fieldNames))\r\n throw TypeError(\"fieldNames must be an Array\");\r\n\r\n /**\r\n * Field names that belong to this oneof.\r\n * @type {string[]}\r\n */\r\n this.oneof = fieldNames || []; // toJSON, marker\r\n\r\n /**\r\n * Fields that belong to this oneof and are possibly not yet added to its parent.\r\n * @type {Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = [];\r\n}\r\n\r\n/**\r\n * Fields that belong to this oneof as an array for iteration.\r\n * @name OneOf#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(OneOfPrototype, \"fieldsArray\", {\r\n get: function() {\r\n return this._fieldsArray;\r\n }\r\n});\r\n\r\n/**\r\n * Tests if the specified JSON object describes a oneof.\r\n * @param {*} json JSON object\r\n * @returns {boolean} `true` if the object describes a oneof\r\n */\r\nOneOf.testJSON = function testJSON(json) {\r\n return Boolean(json.oneof);\r\n};\r\n\r\n/**\r\n * Constructs a oneof from JSON.\r\n * @param {string} name Oneof name\r\n * @param {Object.} json JSON object\r\n * @returns {MapField} Created oneof\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nOneOf.fromJSON = function fromJSON(name, json) {\r\n return new OneOf(name, json.oneof, json.options);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.toJSON = function toJSON() {\r\n return {\r\n oneof : this.oneof,\r\n options : this.options\r\n };\r\n};\r\n\r\n/**\r\n * Adds the fields of the specified oneof to the parent if not already done so.\r\n * @param {OneOf} oneof The oneof\r\n * @returns {undefined}\r\n * @inner\r\n * @ignore\r\n */\r\nfunction addFieldsToParent(oneof) {\r\n if (oneof.parent) {\r\n oneof._fieldsArray.forEach(function(field) {\r\n if (!field.parent)\r\n oneof.parent.add(field);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Adds a field to this oneof and removes it from its current parent, if any.\r\n * @param {Field} field Field to add\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.add = function add(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n if (field.parent && field.parent !== this.parent)\r\n field.parent.remove(field);\r\n this.oneof.push(field.name);\r\n this._fieldsArray.push(field);\r\n field.partOf = this; // field.parent remains null\r\n addFieldsToParent(this);\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes a field from this oneof and puts it back to the oneof's parent.\r\n * @param {Field} field Field to remove\r\n * @returns {OneOf} `this`\r\n */\r\nOneOfPrototype.remove = function remove(field) {\r\n\r\n /* istanbul ignore next */\r\n if (!(field instanceof Field))\r\n throw TypeError(\"field must be a Field\");\r\n\r\n var index = this._fieldsArray.indexOf(field);\r\n /* istanbul ignore next */\r\n if (index < 0)\r\n throw Error(field + \" is not a member of \" + this);\r\n\r\n this._fieldsArray.splice(index, 1);\r\n index = this.oneof.indexOf(field.name);\r\n /* istanbul ignore else */\r\n if (index > -1) // theoretical\r\n this.oneof.splice(index, 1);\r\n field.partOf = null;\r\n return this;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onAdd = function onAdd(parent) {\r\n ReflectionObject.prototype.onAdd.call(this, parent);\r\n var self = this;\r\n // Collect present fields\r\n this.oneof.forEach(function(fieldName) {\r\n var field = parent.get(fieldName);\r\n if (field && !field.partOf) {\r\n field.partOf = self;\r\n self._fieldsArray.push(field);\r\n }\r\n });\r\n // Add not yet present fields\r\n addFieldsToParent(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nOneOfPrototype.onRemove = function onRemove(parent) {\r\n this._fieldsArray.forEach(function(field) {\r\n if (field.parent)\r\n field.parent.remove(field);\r\n });\r\n ReflectionObject.prototype.onRemove.call(this, parent);\r\n};\r\n","\"use strict\";\r\nmodule.exports = parse;\r\n\r\nparse.filename = null;\r\nparse.defaults = { keepCase: false };\r\n\r\nvar tokenize = require(34),\r\n Root = require(30),\r\n Type = require(35),\r\n Field = require(17),\r\n MapField = require(21),\r\n OneOf = require(26),\r\n Enum = require(16),\r\n Service = require(33),\r\n Method = require(23),\r\n types = require(36),\r\n util = require(37);\r\n\r\nfunction isName(token) {\r\n return /^[a-zA-Z_][a-zA-Z_0-9]*$/.test(token);\r\n}\r\n\r\nfunction isTypeRef(token) {\r\n return /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction isFqTypeRef(token) {\r\n return /^(?:\\.[a-zA-Z][a-zA-Z_0-9]*)+$/.test(token);\r\n}\r\n\r\nfunction lower(token) {\r\n return token === null ? null : token.toLowerCase();\r\n}\r\n\r\nfunction camelCase(str) {\r\n return str.substring(0,1)\r\n + str.substring(1)\r\n .replace(/_([a-z])(?=[a-z]|$)/g, function($0, $1) { return $1.toUpperCase(); });\r\n}\r\n\r\n/**\r\n * Result object returned from {@link parse}.\r\n * @typedef ParserResult\r\n * @type {Object.}\r\n * @property {string|undefined} package Package name, if declared\r\n * @property {string[]|undefined} imports Imports, if any\r\n * @property {string[]|undefined} weakImports Weak imports, if any\r\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\r\n * @property {Root} root Populated root instance\r\n */\r\n\r\n/**\r\n * Options modifying the behavior of {@link parse}.\r\n * @typedef ParseOptions\r\n * @type {Object.}\r\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\r\n */\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {Root} root Root to populate\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n */\r\nfunction parse(source, root, options) {\r\n /* eslint-disable callback-return */\r\n if (!(root instanceof Root)) {\r\n options = root;\r\n root = new Root();\r\n }\r\n if (!options)\r\n options = parse.defaults;\r\n\r\n var tn = tokenize(source),\r\n next = tn.next,\r\n push = tn.push,\r\n peek = tn.peek,\r\n skip = tn.skip,\r\n cmnt = tn.cmnt;\r\n\r\n var head = true,\r\n pkg,\r\n imports,\r\n weakImports,\r\n syntax,\r\n isProto3 = false;\r\n\r\n var ptr = root;\r\n\r\n var applyCase = options.keepCase ? function(name) { return name; } : camelCase;\r\n\r\n /* istanbul ignore next */\r\n function illegal(token, name) {\r\n var filename = parse.filename;\r\n parse.filename = null;\r\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line() + \")\");\r\n }\r\n\r\n function readString() {\r\n var values = [],\r\n token;\r\n /* istanbul ignore next */\r\n do {\r\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\r\n throw illegal(token);\r\n values.push(next());\r\n skip(token);\r\n token = peek();\r\n } while (token === \"\\\"\" || token === \"'\");\r\n return values.join(\"\");\r\n }\r\n\r\n function readValue(acceptTypeRef) {\r\n var token = next();\r\n switch (lower(token)) {\r\n case \"'\":\r\n case \"\\\"\":\r\n push(token);\r\n return readString();\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n }\r\n try {\r\n return parseNumber(token);\r\n } catch (e) {\r\n /* istanbul ignore else */\r\n if (acceptTypeRef && isTypeRef(token))\r\n return token;\r\n /* istanbul ignore next */\r\n throw illegal(token, \"value\");\r\n }\r\n }\r\n\r\n function readRange() {\r\n var start = parseId(next());\r\n var end = start;\r\n if (skip(\"to\", true))\r\n end = parseId(next());\r\n skip(\";\");\r\n return [ start, end ];\r\n }\r\n\r\n function parseNumber(token) {\r\n var sign = 1;\r\n if (token.charAt(0) === \"-\") {\r\n sign = -1;\r\n token = token.substring(1);\r\n }\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"inf\": return sign * Infinity;\r\n case \"nan\": return NaN;\r\n case \"0\": return 0;\r\n }\r\n if (/^[1-9][0-9]*$/.test(token))\r\n return sign * parseInt(token, 10);\r\n if (/^0[x][0-9a-f]+$/.test(tokenLower))\r\n return sign * parseInt(token, 16);\r\n if (/^0[0-7]+$/.test(token))\r\n return sign * parseInt(token, 8);\r\n if (/^(?!e)[0-9]*(?:\\.[0-9]*)?(?:[e][+-]?[0-9]+)?$/.test(tokenLower))\r\n return sign * parseFloat(token);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"number\");\r\n }\r\n\r\n function parseId(token, acceptNegative) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"max\": return 536870911;\r\n case \"0\": return 0;\r\n }\r\n /* istanbul ignore next */\r\n if (token.charAt(0) === \"-\" && !acceptNegative)\r\n throw illegal(token, \"id\");\r\n if (/^-?[1-9][0-9]*$/.test(token))\r\n return parseInt(token, 10);\r\n if (/^-?0[x][0-9a-f]+$/.test(tokenLower))\r\n return parseInt(token, 16);\r\n /* istanbul ignore else */\r\n if (/^-?0[0-7]+$/.test(token))\r\n return parseInt(token, 8);\r\n /* istanbul ignore next */\r\n throw illegal(token, \"id\");\r\n }\r\n\r\n function parsePackage() {\r\n /* istanbul ignore next */\r\n if (pkg !== undefined)\r\n throw illegal(\"package\");\r\n pkg = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(pkg))\r\n throw illegal(pkg, \"name\");\r\n ptr = ptr.define(pkg);\r\n skip(\";\");\r\n }\r\n\r\n function parseImport() {\r\n var token = peek();\r\n var whichImports;\r\n switch (token) {\r\n case \"weak\":\r\n whichImports = weakImports || (weakImports = []);\r\n next();\r\n break;\r\n case \"public\":\r\n next();\r\n // eslint-disable-line no-fallthrough\r\n default:\r\n whichImports = imports || (imports = []);\r\n break;\r\n }\r\n token = readString();\r\n skip(\";\");\r\n whichImports.push(token);\r\n }\r\n\r\n function parseSyntax() {\r\n skip(\"=\");\r\n syntax = lower(readString());\r\n isProto3 = syntax === \"proto3\";\r\n /* istanbul ignore next */\r\n if (!isProto3 && syntax !== \"proto2\")\r\n throw illegal(syntax, \"syntax\");\r\n skip(\";\");\r\n }\r\n\r\n function parseCommon(parent, token) {\r\n switch (token) {\r\n\r\n case \"option\":\r\n parseOption(parent, token);\r\n skip(\";\");\r\n return true;\r\n\r\n case \"message\":\r\n parseType(parent, token);\r\n return true;\r\n\r\n case \"enum\":\r\n parseEnum(parent, token);\r\n return true;\r\n\r\n case \"service\":\r\n parseService(parent, token);\r\n return true;\r\n\r\n case \"extend\":\r\n parseExtension(parent, token);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function parseType(parent, token) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"type name\");\r\n var type = new Type(name);\r\n type.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n if (parseCommon(type, token))\r\n continue;\r\n switch (tokenLower) {\r\n\r\n case \"map\":\r\n parseMapField(type, tokenLower);\r\n break;\r\n\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, tokenLower);\r\n break;\r\n\r\n case \"oneof\":\r\n parseOneOf(type, tokenLower);\r\n break;\r\n\r\n case \"extensions\":\r\n (type.extensions || (type.extensions = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n case \"reserved\":\r\n (type.reserved || (type.reserved = [])).push(readRange(type, tokenLower));\r\n break;\r\n\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(type, \"optional\");\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(type);\r\n }\r\n\r\n function parseField(parent, rule, extend) {\r\n var type = next();\r\n if (type === \"group\") {\r\n parseGroup(parent, rule);\r\n return;\r\n }\r\n /* istanbul ignore next */\r\n if (!isTypeRef(type))\r\n throw illegal(type, \"type\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new Field(name, parseId(next()), type, rule, extend),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\r\n // parsing proto2 descriptors without the option, where applicable.\r\n if (field.repeated && types.packed[type] !== undefined && !isProto3)\r\n field.setOption(\"packed\", false, /* ifNotSet */ true);\r\n parent.add(field);\r\n }\r\n\r\n function parseGroup(parent, rule) {\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var fieldName = util.lcFirst(name);\r\n if (name === fieldName)\r\n name = util.ucFirst(name);\r\n skip(\"=\");\r\n var id = parseId(next());\r\n var type = new Type(name);\r\n type.group = true;\r\n type.comment = cmnt();\r\n var field = new Field(fieldName, id, name, rule);\r\n skip(\"{\");\r\n while ((token = next()) !== \"}\") {\r\n switch (token = lower(token)) {\r\n case \"option\":\r\n parseOption(type, token);\r\n skip(\";\");\r\n break;\r\n case \"required\":\r\n case \"optional\":\r\n case \"repeated\":\r\n parseField(type, token);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token); // there are no groups with proto3 semantics\r\n }\r\n }\r\n skip(\";\", true);\r\n parent.add(type).add(field);\r\n }\r\n\r\n function parseMapField(parent) {\r\n skip(\"<\");\r\n var keyType = next();\r\n\r\n /* istanbul ignore next */\r\n if (types.mapKey[keyType] === undefined)\r\n throw illegal(keyType, \"type\");\r\n skip(\",\");\r\n var valueType = next();\r\n /* istanbul ignore next */\r\n if (!isTypeRef(valueType))\r\n throw illegal(valueType, \"type\");\r\n skip(\">\");\r\n var name = next();\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n skip(\"=\");\r\n var field = new MapField(name, parseId(next()), keyType, valueType),\r\n trailingLine = tn.line();\r\n field.comment = cmnt();\r\n parseInlineOptions(field);\r\n if (!field.comment)\r\n field.comment = cmnt(trailingLine);\r\n parent.add(field);\r\n }\r\n\r\n function parseOneOf(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n name = applyCase(name);\r\n var oneof = new OneOf(name),\r\n trailingLine = tn.line();\r\n oneof.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (token === \"option\") {\r\n parseOption(oneof, token);\r\n skip(\";\");\r\n } else {\r\n push(token);\r\n parseField(oneof, \"optional\");\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!oneof.comment)\r\n oneof.comment = cmnt(trailingLine);\r\n }\r\n parent.add(oneof);\r\n }\r\n\r\n function parseEnum(parent, token) {\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n\r\n var enm = new Enum(name);\r\n enm.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n if (lower(token) === \"option\") {\r\n parseOption(enm, token);\r\n skip(\";\");\r\n } else\r\n parseEnumValue(enm, token);\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(enm);\r\n }\r\n\r\n function parseEnumValue(parent, token) {\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"name\");\r\n\r\n var name = token;\r\n skip(\"=\");\r\n var value = parseId(next(), true),\r\n trailingLine = tn.line();\r\n parent.add(name, value, cmnt());\r\n parseInlineOptions({}); // skips enum value options\r\n if (!parent.comments[name])\r\n parent.comments[name] = cmnt(trailingLine);\r\n }\r\n\r\n function parseOption(parent, token) {\r\n var custom = skip(\"(\", true);\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(name))\r\n throw illegal(name, \"name\");\r\n\r\n if (custom) {\r\n skip(\")\");\r\n name = \"(\" + name + \")\";\r\n token = peek();\r\n if (isFqTypeRef(token)) {\r\n name += token;\r\n next();\r\n }\r\n }\r\n skip(\"=\");\r\n parseOptionValue(parent, name);\r\n }\r\n\r\n function parseOptionValue(parent, name) {\r\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\r\n /* istanbul ignore next */\r\n do {\r\n if (!isName(token = next()))\r\n throw illegal(token, \"name\");\r\n if (peek() === \"{\")\r\n parseOptionValue(parent, name + \".\" + token);\r\n else {\r\n skip(\":\");\r\n setOption(parent, name + \".\" + token, readValue(true));\r\n }\r\n } while (!skip(\"}\", true));\r\n } else\r\n setOption(parent, name, readValue(true));\r\n // Does not enforce a delimiter to be universal\r\n }\r\n\r\n function setOption(parent, name, value) {\r\n if (parent.setOption)\r\n parent.setOption(name, value);\r\n }\r\n\r\n function parseInlineOptions(parent) {\r\n if (skip(\"[\", true)) {\r\n do {\r\n parseOption(parent, \"option\");\r\n } while (skip(\",\", true));\r\n skip(\"]\");\r\n }\r\n skip(\";\");\r\n return parent;\r\n }\r\n\r\n function parseService(parent, token) {\r\n token = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(token))\r\n throw illegal(token, \"service name\");\r\n\r\n var name = token;\r\n var service = new Service(name);\r\n service.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(service, tokenLower);\r\n skip(\";\");\r\n break;\r\n case \"rpc\":\r\n parseMethod(service, tokenLower);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n parent.add(service);\r\n }\r\n\r\n function parseMethod(parent, token) {\r\n var type = token;\r\n var name = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isName(name))\r\n throw illegal(name, \"name\");\r\n var requestType, requestStream,\r\n responseType, responseStream;\r\n skip(\"(\");\r\n if (skip(\"stream\", true))\r\n requestStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n requestType = token;\r\n skip(\")\"); skip(\"returns\"); skip(\"(\");\r\n if (skip(\"stream\", true))\r\n responseStream = true;\r\n /* istanbul ignore next */\r\n if (!isTypeRef(token = next()))\r\n throw illegal(token);\r\n\r\n responseType = token;\r\n skip(\")\");\r\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream),\r\n trailingLine = tn.line();\r\n method.comment = cmnt();\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"option\":\r\n parseOption(method, tokenLower);\r\n skip(\";\");\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw illegal(token);\r\n }\r\n }\r\n skip(\";\", true);\r\n } else {\r\n skip(\";\");\r\n if (!method.comment)\r\n method.comment = cmnt(trailingLine);\r\n }\r\n parent.add(method);\r\n }\r\n\r\n function parseExtension(parent, token) {\r\n var reference = next();\r\n\r\n /* istanbul ignore next */\r\n if (!isTypeRef(reference))\r\n throw illegal(reference, \"reference\");\r\n\r\n if (skip(\"{\", true)) {\r\n while ((token = next()) !== \"}\") {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n case \"required\":\r\n case \"repeated\":\r\n case \"optional\":\r\n parseField(parent, tokenLower, reference);\r\n break;\r\n default:\r\n /* istanbul ignore next */\r\n if (!isProto3 || !isTypeRef(token))\r\n throw illegal(token);\r\n push(token);\r\n parseField(parent, \"optional\", reference);\r\n break;\r\n }\r\n }\r\n skip(\";\", true);\r\n } else\r\n skip(\";\");\r\n }\r\n\r\n var token;\r\n while ((token = next()) !== null) {\r\n var tokenLower = lower(token);\r\n switch (tokenLower) {\r\n\r\n case \"package\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parsePackage();\r\n break;\r\n\r\n case \"import\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseImport();\r\n break;\r\n\r\n case \"syntax\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseSyntax();\r\n break;\r\n\r\n case \"option\":\r\n /* istanbul ignore next */\r\n if (!head)\r\n throw illegal(token);\r\n parseOption(ptr, token);\r\n skip(\";\");\r\n break;\r\n\r\n default:\r\n /* istanbul ignore else */\r\n if (parseCommon(ptr, token)) {\r\n head = false;\r\n continue;\r\n }\r\n /* istanbul ignore next */\r\n throw illegal(token);\r\n }\r\n }\r\n\r\n parse.filename = null;\r\n return {\r\n \"package\" : pkg,\r\n \"imports\" : imports,\r\n weakImports : weakImports,\r\n syntax : syntax,\r\n root : root\r\n };\r\n}\r\n\r\n/**\r\n * Parses the given .proto source and returns an object with the parsed contents.\r\n * @name parse\r\n * @function\r\n * @param {string} source Source contents\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {ParserResult} Parser result\r\n * @property {string} filename=null Currently processing file name for error reporting, if known\r\n * @property {ParseOptions} defaults Default {@link ParseOptions}\r\n * @variation 2\r\n */\r\n","\"use strict\";\r\nmodule.exports = Reader;\r\n\r\nvar util = require(39);\r\n\r\nvar BufferReader; // cyclic\r\n\r\nvar LongBits = util.LongBits,\r\n utf8 = util.utf8;\r\n\r\n/* istanbul ignore next */\r\nfunction indexOutOfRange(reader, writeLength) {\r\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\r\n}\r\n\r\n/**\r\n * Constructs a new reader instance using the specified buffer.\r\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\r\n * @constructor\r\n * @param {Uint8Array} buffer Buffer to read from\r\n */\r\nfunction Reader(buffer) {\r\n\r\n /**\r\n * Read buffer.\r\n * @type {Uint8Array}\r\n */\r\n this.buf = buffer;\r\n\r\n /**\r\n * Read buffer position.\r\n * @type {number}\r\n */\r\n this.pos = 0;\r\n\r\n /**\r\n * Read buffer length.\r\n * @type {number}\r\n */\r\n this.len = buffer.length;\r\n}\r\n\r\n/**\r\n * Creates a new reader using the specified buffer.\r\n * @function\r\n * @param {Uint8Array} buffer Buffer to read from\r\n * @returns {BufferReader|Reader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\r\n */\r\nReader.create = util.Buffer\r\n ? function create_buffer_setup(buffer) {\r\n /* istanbul ignore next */\r\n if (!BufferReader)\r\n BufferReader = require(29);\r\n return (Reader.create = function create_buffer(buffer) {\r\n return util.Buffer.isBuffer(buffer)\r\n ? new BufferReader(buffer)\r\n : new Reader(buffer);\r\n })(buffer);\r\n }\r\n /* istanbul ignore next */\r\n : function create_array(buffer) {\r\n return new Reader(buffer);\r\n };\r\n\r\n/** @alias Reader.prototype */\r\nvar ReaderPrototype = Reader.prototype;\r\n\r\nReaderPrototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\r\n\r\n/**\r\n * Reads a varint as an unsigned 32 bit value.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.uint32 = (function read_uint32_setup() {\r\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\r\n return function read_uint32() {\r\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\r\n\r\n /* istanbul ignore next */\r\n if ((this.pos += 5) > this.len) {\r\n this.pos = this.len;\r\n throw indexOutOfRange(this, 10);\r\n }\r\n return value;\r\n };\r\n})();\r\n\r\n/**\r\n * Reads a varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.int32 = function read_int32() {\r\n return this.uint32() | 0;\r\n};\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 32 bit value.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sint32 = function read_sint32() {\r\n var value = this.uint32();\r\n return value >>> 1 ^ -(value & 1) | 0;\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readLongVarint() {\r\n // tends to deopt with local vars for octet etc.\r\n var bits = new LongBits(0 >>> 0, 0 >>> 0);\r\n var i = 0;\r\n if (this.len - this.pos > 4) { // fast route (lo)\r\n for (; i < 4; ++i) {\r\n // 1st..4th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 5th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n i = 0;\r\n } else {\r\n for (; i < 3; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 1st..3th\r\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n // 4th\r\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\r\n return bits;\r\n }\r\n if (this.len - this.pos > 4) { // fast route (hi)\r\n for (; i < 5; ++i) {\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n } else {\r\n for (; i < 5; ++i) {\r\n /* istanbul ignore next */\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n // 6th..10th\r\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\r\n if (this.buf[this.pos++] < 128)\r\n return bits;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid varint encoding\");\r\n}\r\n\r\nfunction read_int64_long() {\r\n return readLongVarint.call(this).toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_int64_number() {\r\n return readLongVarint.call(this).toNumber();\r\n}\r\n\r\nfunction read_uint64_long() {\r\n return readLongVarint.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_uint64_number() {\r\n return readLongVarint.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sint64_long() {\r\n return readLongVarint.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sint64_number() {\r\n return readLongVarint.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads a varint as a signed 64 bit value.\r\n * @name Reader#int64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as an unsigned 64 bit value.\r\n * @name Reader#uint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a zig-zag encoded varint as a signed 64 bit value.\r\n * @name Reader#sint64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads a varint as a boolean.\r\n * @returns {boolean} Value read\r\n */\r\nReaderPrototype.bool = function read_bool() {\r\n return this.uint32() !== 0;\r\n};\r\n\r\nfunction readFixed32(buf, end) {\r\n return (buf[end - 4]\r\n | buf[end - 3] << 8\r\n | buf[end - 2] << 16\r\n | buf[end - 1] << 24) >>> 0;\r\n}\r\n\r\n/**\r\n * Reads fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.fixed32 = function read_fixed32() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n return readFixed32(this.buf, this.pos += 4);\r\n};\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 32 bits as a number.\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.sfixed32 = function read_sfixed32() {\r\n var value = this.fixed32();\r\n return value >>> 1 ^ -(value & 1);\r\n};\r\n\r\n/* eslint-disable no-invalid-this */\r\n\r\nfunction readFixed64(/* this: Reader */) {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 8);\r\n\r\n return new LongBits(readFixed32(this.buf, this.pos += 4), readFixed32(this.buf, this.pos += 4));\r\n}\r\n\r\nfunction read_fixed64_long() {\r\n return readFixed64.call(this).toLong(true);\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_fixed64_number() {\r\n return readFixed64.call(this).toNumber(true);\r\n}\r\n\r\nfunction read_sfixed64_long() {\r\n return readFixed64.call(this).zzDecode().toLong();\r\n}\r\n\r\n/* istanbul ignore next */\r\nfunction read_sfixed64_number() {\r\n return readFixed64.call(this).zzDecode().toNumber();\r\n}\r\n\r\n/* eslint-enable no-invalid-this */\r\n\r\n/**\r\n * Reads fixed 64 bits.\r\n * @name Reader#fixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\n/**\r\n * Reads zig-zag encoded fixed 64 bits.\r\n * @name Reader#sfixed64\r\n * @function\r\n * @returns {Long|number} Value read\r\n */\r\n\r\nvar readFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function readFloat_f32(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readFloat_f32_le(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readFloat_ieee754(buf, pos) {\r\n var uint = readFixed32(buf, pos + 4),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n };\r\n\r\n/**\r\n * Reads a float (32 bit) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.float = function read_float() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 4 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readFloat(this.buf, this.pos);\r\n this.pos += 4;\r\n return value;\r\n};\r\n\r\nvar readDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function readDouble_f64(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n /* istanbul ignore next */\r\n : function readDouble_f64_le(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function readDouble_ieee754(buf, pos) {\r\n var lo = readFixed32(buf, pos + 4),\r\n hi = readFixed32(buf, pos + 8);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n };\r\n\r\n/**\r\n * Reads a double (64 bit float) as a number.\r\n * @function\r\n * @returns {number} Value read\r\n */\r\nReaderPrototype.double = function read_double() {\r\n\r\n /* istanbul ignore next */\r\n if (this.pos + 8 > this.len)\r\n throw indexOutOfRange(this, 4);\r\n\r\n var value = readDouble(this.buf, this.pos);\r\n this.pos += 8;\r\n return value;\r\n};\r\n\r\n/**\r\n * Reads a sequence of bytes preceeded by its length as a varint.\r\n * @returns {Uint8Array} Value read\r\n */\r\nReaderPrototype.bytes = function read_bytes() {\r\n var length = this.uint32(),\r\n start = this.pos,\r\n end = this.pos + length;\r\n\r\n /* istanbul ignore next */\r\n if (end > this.len)\r\n throw indexOutOfRange(this, length);\r\n\r\n this.pos += length;\r\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\r\n ? new this.buf.constructor(0)\r\n : this._slice.call(this.buf, start, end);\r\n};\r\n\r\n/**\r\n * Reads a string preceeded by its byte length as a varint.\r\n * @returns {string} Value read\r\n */\r\nReaderPrototype.string = function read_string() {\r\n var bytes = this.bytes();\r\n return utf8.read(bytes, 0, bytes.length);\r\n};\r\n\r\n/**\r\n * Skips the specified number of bytes if specified, otherwise skips a varint.\r\n * @param {number} [length] Length if known, otherwise a varint is assumed\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skip = function skip(length) {\r\n if (typeof length === \"number\") {\r\n /* istanbul ignore next */\r\n if (this.pos + length > this.len)\r\n throw indexOutOfRange(this, length);\r\n this.pos += length;\r\n } else {\r\n /* istanbul ignore next */\r\n do {\r\n if (this.pos >= this.len)\r\n throw indexOutOfRange(this);\r\n } while (this.buf[this.pos++] & 128);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Skips the next element of the specified wire type.\r\n * @param {number} wireType Wire type received\r\n * @returns {Reader} `this`\r\n */\r\nReaderPrototype.skipType = function(wireType) {\r\n switch (wireType) {\r\n case 0:\r\n this.skip();\r\n break;\r\n case 1:\r\n this.skip(8);\r\n break;\r\n case 2:\r\n this.skip(this.uint32());\r\n break;\r\n case 3:\r\n do { // eslint-disable-line no-constant-condition\r\n if ((wireType = this.uint32() & 7) === 4)\r\n break;\r\n this.skipType(wireType);\r\n } while (true);\r\n break;\r\n case 5:\r\n this.skip(4);\r\n break;\r\n\r\n /* istanbul ignore next */\r\n default:\r\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\r\n }\r\n return this;\r\n};\r\n\r\nfunction configure() {\r\n /* istanbul ignore else */\r\n if (util.Long) {\r\n ReaderPrototype.int64 = read_int64_long;\r\n ReaderPrototype.uint64 = read_uint64_long;\r\n ReaderPrototype.sint64 = read_sint64_long;\r\n ReaderPrototype.fixed64 = read_fixed64_long;\r\n ReaderPrototype.sfixed64 = read_sfixed64_long;\r\n } else {\r\n ReaderPrototype.int64 = read_int64_number;\r\n ReaderPrototype.uint64 = read_uint64_number;\r\n ReaderPrototype.sint64 = read_sint64_number;\r\n ReaderPrototype.fixed64 = read_fixed64_number;\r\n ReaderPrototype.sfixed64 = read_sfixed64_number;\r\n }\r\n}\r\n\r\nReader._configure = configure;\r\n\r\nconfigure();\r\n","\"use strict\";\r\nmodule.exports = BufferReader;\r\n\r\n// extends Reader\r\nvar Reader = require(28);\r\n/** @alias BufferReader.prototype */\r\nvar BufferReaderPrototype = BufferReader.prototype = Object.create(Reader.prototype);\r\nBufferReaderPrototype.constructor = BufferReader;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Constructs a new buffer reader instance.\r\n * @classdesc Wire format reader using node buffers.\r\n * @extends Reader\r\n * @constructor\r\n * @param {Buffer} buffer Buffer to read from\r\n */\r\nfunction BufferReader(buffer) {\r\n Reader.call(this, buffer);\r\n}\r\n\r\n/* istanbul ignore else */\r\nif (util.Buffer)\r\n BufferReaderPrototype._slice = util.Buffer.prototype.slice;\r\n\r\n/**\r\n * @override\r\n */\r\nBufferReaderPrototype.string = function read_string_buffer() {\r\n var len = this.uint32(); // modifies pos\r\n return this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len));\r\n};\r\n","\"use strict\";\r\nmodule.exports = Root;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Root.prototype */\r\nvar RootPrototype = Namespace.extend(Root);\r\n\r\nRoot.className = \"Root\";\r\n\r\nvar Field = require(17),\r\n Enum = require(16),\r\n util = require(37);\r\n\r\nvar parse, // cyclic, might be excluded\r\n common; // might be excluded\r\n\r\n/**\r\n * Constructs a new root namespace instance.\r\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {Object.} [options] Top level options\r\n */\r\nfunction Root(options) {\r\n Namespace.call(this, \"\", options);\r\n\r\n /**\r\n * Deferred extension fields.\r\n * @type {Field[]}\r\n */\r\n this.deferred = [];\r\n\r\n /**\r\n * Resolved file names of loaded files.\r\n * @type {string[]}\r\n */\r\n this.files = [];\r\n}\r\n\r\n/**\r\n * Loads a JSON definition into a root namespace.\r\n * @param {Object.} json JSON definition\r\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\r\n * @returns {Root} Root namespace\r\n */\r\nRoot.fromJSON = function fromJSON(json, root) {\r\n if (!root)\r\n root = new Root();\r\n return root.setOptions(json.options).addJSON(json.nested);\r\n};\r\n\r\n/**\r\n * Resolves the path of an imported file, relative to the importing origin.\r\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\r\n * @function\r\n * @param {string} origin The file name of the importing file\r\n * @param {string} target The file name being imported\r\n * @returns {string} Resolved path to `target`\r\n */\r\nRootPrototype.resolvePath = util.path.resolve;\r\n\r\n// A symbol-like function to safely signal synchronous loading\r\n/* istanbul ignore next */\r\nfunction SYNC() {} // eslint-disable-line no-empty-function\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} options Parse options\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nRootPrototype.load = function load(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = undefined;\r\n }\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(load, self, filename);\r\n \r\n var sync = callback === SYNC; // undocumented\r\n\r\n // Finishes loading by calling the callback (exactly once)\r\n function finish(err, root) {\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return;\r\n var cb = callback;\r\n callback = null;\r\n if (sync)\r\n throw err;\r\n cb(err, root);\r\n }\r\n\r\n // Processes a single file\r\n function process(filename, source) {\r\n try {\r\n if (util.isString(source) && source.charAt(0) === \"{\")\r\n source = JSON.parse(source);\r\n if (!util.isString(source))\r\n self.setOptions(source.options).addJSON(source.nested);\r\n else {\r\n parse.filename = filename;\r\n var parsed = parse(source, self, options);\r\n if (parsed.imports)\r\n parsed.imports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name));\r\n });\r\n if (parsed.weakImports)\r\n parsed.weakImports.forEach(function(name) {\r\n fetch(self.resolvePath(filename, name), true);\r\n });\r\n }\r\n } catch (err) {\r\n finish(err);\r\n }\r\n if (!sync && !queued)\r\n finish(null, self); // only once anyway\r\n }\r\n\r\n // Fetches a single file\r\n function fetch(filename, weak) {\r\n\r\n // Strip path if this file references a bundled definition\r\n var idx = filename.lastIndexOf(\"google/protobuf/\");\r\n if (idx > -1) {\r\n var altname = filename.substring(idx);\r\n if (altname in common)\r\n filename = altname;\r\n }\r\n\r\n // Skip if already loaded / attempted\r\n if (self.files.indexOf(filename) > -1)\r\n return;\r\n self.files.push(filename);\r\n\r\n // Shortcut bundled definitions\r\n if (filename in common) {\r\n if (sync)\r\n process(filename, common[filename]);\r\n else {\r\n ++queued;\r\n setTimeout(function() {\r\n --queued;\r\n process(filename, common[filename]);\r\n });\r\n }\r\n return;\r\n }\r\n\r\n // Otherwise fetch from disk or network\r\n if (sync) {\r\n var source;\r\n try {\r\n source = util.fs.readFileSync(filename).toString(\"utf8\");\r\n } catch (err) {\r\n if (!weak)\r\n finish(err);\r\n return;\r\n }\r\n process(filename, source);\r\n } else {\r\n ++queued;\r\n util.fetch(filename, function(err, source) {\r\n --queued;\r\n /* istanbul ignore next */\r\n if (!callback)\r\n return; // terminated meanwhile\r\n if (err) {\r\n if (!weak)\r\n finish(err);\r\n else if (!queued)\r\n finish(null, self);\r\n return;\r\n }\r\n process(filename, source);\r\n });\r\n }\r\n }\r\n var queued = 0;\r\n\r\n // Assembling the root namespace doesn't require working type\r\n // references anymore, so we can load everything in parallel\r\n if (util.isString(filename))\r\n filename = [ filename ];\r\n filename.forEach(function(filename) {\r\n fetch(self.resolvePath(\"\", filename));\r\n });\r\n\r\n if (sync)\r\n return self;\r\n if (!queued)\r\n finish(null, self);\r\n return undefined;\r\n};\r\n// function load(filename:string, options:ParseOptions, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {LoadCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n// function load(filename:string, callback:LoadCallback):undefined\r\n\r\n/**\r\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\r\n * @name Root#load\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n// function load(filename:string, [options:ParseOptions]):Promise\r\n\r\n/**\r\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\r\n * @name Root#loadSync\r\n * @function\r\n * @param {string|string[]} filename Names of one or multiple files to load\r\n * @param {ParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\r\n * @returns {Root} Root namespace\r\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\r\n */\r\nRootPrototype.loadSync = function loadSync(filename, options) {\r\n if (!util.isNode)\r\n throw Error(\"not supported\");\r\n return this.load(filename, options, SYNC);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nRootPrototype.resolveAll = function resolveAll() {\r\n if (this.deferred.length)\r\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\r\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\r\n }).join(\", \"));\r\n return Namespace.prototype.resolveAll.call(this);\r\n};\r\n\r\n/**\r\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\r\n * @param {Field} field Declaring extension field witin the declaring type\r\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\r\n * @inner\r\n * @ignore\r\n */\r\nfunction handleExtension(field) {\r\n var extendedType = field.parent.lookup(field.extend);\r\n if (extendedType) {\r\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\r\n sisterField.declaringField = field;\r\n field.extensionField = sisterField;\r\n extendedType.add(sisterField);\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n// only uppercased (and thus conflict-free) children are exposed, see below\r\nvar exposeRe = /^[A-Z]/;\r\n\r\n/**\r\n * Called when any object is added to this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object added\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleAdd = function handleAdd(object) {\r\n // Try to handle any deferred extensions\r\n var newDeferred = this.deferred.slice();\r\n this.deferred = []; // because the loop calls handleAdd\r\n var i = 0;\r\n while (i < newDeferred.length)\r\n if (handleExtension(newDeferred[i]))\r\n newDeferred.splice(i, 1);\r\n else\r\n ++i;\r\n this.deferred = newDeferred;\r\n // Handle new declaring extension fields without a sister field yet\r\n if (object instanceof Field) {\r\n if (object.extend !== undefined && !object.extensionField && !handleExtension(object) && this.deferred.indexOf(object) < 0)\r\n this.deferred.push(object);\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleAdd(nested[i]);\r\n if (exposeRe.test(object.name))\r\n object.parent[object.name] = object; // expose namespace as property of its parent\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n object.parent[object.name] = object.values; // expose enum values as property of its parent\r\n\r\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\r\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\r\n // a static module with reflection-based solutions where the condition is met.\r\n};\r\n\r\n/**\r\n * Called when any object is removed from this root or its sub-namespaces.\r\n * @param {ReflectionObject} object Object removed\r\n * @returns {undefined}\r\n * @private\r\n */\r\nRootPrototype._handleRemove = function handleRemove(object) {\r\n if (object instanceof Field) {\r\n // If a deferred declaring extension field, cancel the extension\r\n if (object.extend !== undefined && !object.extensionField) {\r\n var index = this.deferred.indexOf(object);\r\n /* istanbul ignore else */\r\n if (index > -1)\r\n this.deferred.splice(index, 1);\r\n }\r\n // If a declaring extension field with a sister field, remove its sister field\r\n if (object.extensionField) {\r\n object.extensionField.parent.remove(object.extensionField);\r\n object.extensionField = null;\r\n }\r\n } else if (object instanceof Namespace) {\r\n var nested = object.nestedArray;\r\n for (var i = 0; i < nested.length; ++i) // recurse into the namespace\r\n this._handleRemove(nested[i]);\r\n if (exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose namespaces\r\n } else if (object instanceof Enum && exposeRe.test(object.name))\r\n delete object.parent[object.name]; // unexpose enum values\r\n};\r\n\r\nRoot._configure = function(_parse, _common) {\r\n parse = _parse;\r\n common = _common;\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Streaming RPC helpers.\r\n * @namespace\r\n */\r\nvar rpc = exports;\r\n\r\n/**\r\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\r\n * @typedef RPCImpl\r\n * @type {function}\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method being called\r\n * @param {Uint8Array} requestData Request data\r\n * @param {RPCImplCallback} callback Callback function\r\n * @returns {undefined}\r\n * @example\r\n * function rpcImpl(method, requestData, callback) {\r\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\r\n * throw Error(\"no such method\");\r\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\r\n * callback(err, responseData);\r\n * });\r\n * }\r\n */\r\n\r\n/**\r\n * Node-style callback as used by {@link RPCImpl}.\r\n * @typedef RPCImplCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {?Uint8Array} [response] Response data or `null` to signal end of stream, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\nrpc.Service = require(32);\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\r\n * \r\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\r\n * @typedef rpc.ServiceMethodCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any\r\n * @param {?Message} [response] Response message\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * A service method part of an {@link rpc.ServiceMethodMixin|ServiceMethodMixin} and thus {@link rpc.Service} as created by {@link Service.create}.\r\n * @typedef rpc.ServiceMethod\r\n * @type {function}\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\r\n * @returns {Promise} Promise if `callback` has been omitted, otherwise `undefined`\r\n */\r\n\r\n/**\r\n * A service method mixin.\r\n * \r\n * When using TypeScript, mixed in service methods are only supported directly with a type definition of a static module (used with reflection). Otherwise, explicit casting is required.\r\n * @typedef rpc.ServiceMethodMixin\r\n * @type {Object.}\r\n * @example\r\n * // Explicit casting with TypeScript\r\n * (myRpcService[\"myMethod\"] as protobuf.rpc.ServiceMethod)(...)\r\n */\r\n\r\n/**\r\n * Constructs a new RPC service instance.\r\n * @classdesc An RPC service as returned by {@link Service#create}.\r\n * @exports rpc.Service\r\n * @extends util.EventEmitter\r\n * @augments rpc.ServiceMethodMixin\r\n * @constructor\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n */\r\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\r\n\r\n if (typeof rpcImpl !== \"function\")\r\n throw TypeError(\"rpcImpl must be a function\");\r\n\r\n util.EventEmitter.call(this);\r\n\r\n /**\r\n * RPC implementation. Becomes `null` once the service is ended.\r\n * @type {?RPCImpl}\r\n */\r\n this.rpcImpl = rpcImpl;\r\n\r\n /**\r\n * Whether requests are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.requestDelimited = Boolean(requestDelimited);\r\n\r\n /**\r\n * Whether responses are length-delimited.\r\n * @type {boolean}\r\n */\r\n this.responseDelimited = Boolean(responseDelimited);\r\n}\r\n\r\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\r\n\r\n/**\r\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\r\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\r\n * @param {function} requestCtor Request constructor\r\n * @param {function} responseCtor Response constructor\r\n * @param {Message|Object} request Request message or plain object\r\n * @param {rpc.ServiceMethodCallback} callback Service callback\r\n * @returns {undefined}\r\n */\r\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\r\n\r\n if (!request)\r\n throw TypeError(\"request must be specified\");\r\n\r\n var self = this;\r\n if (!callback)\r\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\r\n\r\n if (!self.rpcImpl) {\r\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\r\n return undefined;\r\n }\r\n\r\n try {\r\n return self.rpcImpl(\r\n method,\r\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\r\n function rpcCallback(err, response) {\r\n\r\n if (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(err);\r\n }\r\n\r\n if (response === null) {\r\n self.end(/* endedByRPC */ true);\r\n return undefined;\r\n }\r\n\r\n if (!(response instanceof responseCtor)) {\r\n try {\r\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n return callback(\"error\", err);\r\n }\r\n }\r\n\r\n self.emit(\"data\", response, method);\r\n return callback(null, response);\r\n }\r\n );\r\n } catch (err) {\r\n self.emit(\"error\", err, method);\r\n setTimeout(function() { callback(err); }, 0);\r\n return undefined;\r\n }\r\n};\r\n\r\n/**\r\n * Ends this service and emits the `end` event.\r\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\r\n * @returns {rpc.Service} `this`\r\n */\r\nService.prototype.end = function end(endedByRPC) {\r\n if (this.rpcImpl) {\r\n if (!endedByRPC) // signal end to rpcImpl\r\n this.rpcImpl(null, null, null);\r\n this.rpcImpl = null;\r\n this.emit(\"end\").off();\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = Service;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Service.prototype */\r\nvar ServicePrototype = Namespace.extend(Service);\r\n\r\nService.className = \"Service\";\r\n\r\nvar Method = require(23),\r\n util = require(37),\r\n rpc = require(31);\r\n\r\n/**\r\n * Constructs a new service instance.\r\n * @classdesc Reflected service.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Service name\r\n * @param {Object.} [options] Service options\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nfunction Service(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Service methods.\r\n * @type {Object.}\r\n */\r\n this.methods = {}; // toJSON, marker\r\n\r\n /**\r\n * Cached methods as an array.\r\n * @type {?Method[]}\r\n * @private\r\n */\r\n this._methodsArray = null;\r\n}\r\n\r\n/**\r\n * Tests if the specified JSON object describes a service.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a service\r\n */\r\nService.testJSON = function testJSON(json) {\r\n return Boolean(json && json.methods);\r\n};\r\n\r\n/**\r\n * Constructs a service from JSON.\r\n * @param {string} name Service name\r\n * @param {Object.} json JSON object\r\n * @returns {Service} Created service\r\n * @throws {TypeError} If arguments are invalid\r\n */\r\nService.fromJSON = function fromJSON(name, json) {\r\n var service = new Service(name, json.options);\r\n /* istanbul ignore else */\r\n if (json.methods)\r\n Object.keys(json.methods).forEach(function(methodName) {\r\n service.add(Method.fromJSON(methodName, json.methods[methodName]));\r\n });\r\n return service;\r\n};\r\n\r\n/**\r\n * Methods of this service as an array for iteration.\r\n * @name Service#methodsArray\r\n * @type {Method[]}\r\n * @readonly\r\n */\r\nObject.defineProperty(ServicePrototype, \"methodsArray\", {\r\n get: function() {\r\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\r\n }\r\n});\r\n\r\nfunction clearCache(service) {\r\n service._methodsArray = null;\r\n return service;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n methods : Namespace.arrayToJSON(this.methodsArray) || /* istanbul ignore next */ {},\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.methods[name] || null;\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.resolveAll = function resolveAll() {\r\n var methods = this.methodsArray;\r\n for (var i = 0; i < methods.length; ++i)\r\n methods[i].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Method) {\r\n this.methods[object.name] = object;\r\n object.parent = this;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nServicePrototype.remove = function remove(object) {\r\n if (object instanceof Method) {\r\n\r\n /* istanbul ignore next */\r\n if (this.methods[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n\r\n delete this.methods[object.name];\r\n object.parent = null;\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a runtime service using the specified rpc implementation.\r\n * @param {RPCImpl} rpcImpl RPC implementation\r\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\r\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\r\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\r\n */\r\nServicePrototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\r\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\r\n this.methodsArray.forEach(function(method) {\r\n rpcService[util.lcFirst(method.resolve().name)] = util.codegen(\"r\",\"c\")(\"return this.rpcCall(m,q,s,r,c)\").eof(util.lcFirst(method.name), {\r\n m: method,\r\n q: method.resolvedRequestType.ctor,\r\n s: method.resolvedResponseType.ctor\r\n });\r\n });\r\n return rpcService;\r\n};\r\n","\"use strict\";\r\nmodule.exports = tokenize;\r\n\r\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\r\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\r\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\r\n\r\n/**\r\n * Unescapes a string.\r\n * @param {string} str String to unescape\r\n * @returns {string} Unescaped string\r\n * @property {Object.} map Special characters map\r\n * @ignore\r\n */\r\nfunction unescape(str) {\r\n return str.replace(/\\\\(.?)/g, function($0, $1) {\r\n switch ($1) {\r\n case \"\\\\\":\r\n case \"\":\r\n return $1;\r\n default:\r\n return unescape.map[$1] || \"\";\r\n }\r\n });\r\n}\r\n\r\nunescape.map = {\r\n \"0\": \"\\0\",\r\n \"r\": \"\\r\",\r\n \"n\": \"\\n\",\r\n \"t\": \"\\t\"\r\n};\r\n\r\ntokenize.unescape = unescape;\r\n\r\n/**\r\n * Handle object returned from {@link tokenize}.\r\n * @typedef {Object.} TokenizerHandle\r\n * @property {function():number} line Gets the current line number\r\n * @property {function():?string} next Gets the next token and advances (`null` on eof)\r\n * @property {function():?string} peek Peeks for the next token (`null` on eof)\r\n * @property {function(string)} push Pushes a token back to the stack\r\n * @property {function(string, boolean=):boolean} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\r\n * @property {function(number=):?string} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\r\n */\r\n\r\n/**\r\n * Tokenizes the given .proto source and returns an object with useful utility functions.\r\n * @param {string} source Source contents\r\n * @returns {TokenizerHandle} Tokenizer handle\r\n * @property {function(string):string} unescape Unescapes a string\r\n */\r\nfunction tokenize(source) {\r\n /* eslint-disable callback-return */\r\n source = source.toString();\r\n\r\n var offset = 0,\r\n length = source.length,\r\n line = 1,\r\n commentType = null,\r\n commentText = null,\r\n commentLine = 0;\r\n\r\n var stack = [];\r\n\r\n var stringDelim = null;\r\n\r\n /* istanbul ignore next */\r\n /**\r\n * Creates an error for illegal syntax.\r\n * @param {string} subject Subject\r\n * @returns {Error} Error created\r\n * @inner\r\n */\r\n function illegal(subject) {\r\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\r\n }\r\n\r\n /**\r\n * Reads a string till its end.\r\n * @returns {string} String read\r\n * @inner\r\n */\r\n function readString() {\r\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\r\n re.lastIndex = offset - 1;\r\n var match = re.exec(source);\r\n if (!match)\r\n throw illegal(\"string\");\r\n offset = re.lastIndex;\r\n push(stringDelim);\r\n stringDelim = null;\r\n return unescape(match[1]);\r\n }\r\n\r\n /**\r\n * Gets the character at `pos` within the source.\r\n * @param {number} pos Position\r\n * @returns {string} Character\r\n * @inner\r\n */\r\n function charAt(pos) {\r\n return source.charAt(pos);\r\n }\r\n\r\n /**\r\n * Sets the current comment text.\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function setComment(start, end) {\r\n commentType = source.charAt(start++);\r\n commentLine = line;\r\n commentText = source\r\n .substring(start, end)\r\n .split(/\\n/g)\r\n .map(function(line) {\r\n return line.replace(/ *[*/]+ */, \"\").trim();\r\n })\r\n .join(\"\\n\")\r\n .trim();\r\n }\r\n\r\n /**\r\n * Obtains the next token.\r\n * @returns {?string} Next token or `null` on eof\r\n * @inner\r\n */\r\n function next() {\r\n if (stack.length > 0)\r\n return stack.shift();\r\n if (stringDelim)\r\n return readString();\r\n var repeat,\r\n prev,\r\n curr,\r\n start,\r\n isComment;\r\n do {\r\n if (offset === length)\r\n return null;\r\n repeat = false;\r\n while (/\\s/.test(curr = charAt(offset))) {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n return null;\r\n }\r\n if (charAt(offset) === \"/\") {\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n if (charAt(offset) === \"/\") { // Line\r\n isComment = charAt(start = offset + 1) === \"/\";\r\n while (charAt(++offset) !== \"\\n\")\r\n if (offset === length)\r\n return null;\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 1);\r\n ++line;\r\n repeat = true;\r\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\r\n isComment = charAt(start = offset + 1) === \"*\";\r\n do {\r\n if (curr === \"\\n\")\r\n ++line;\r\n if (++offset === length)\r\n throw illegal(\"comment\");\r\n prev = curr;\r\n curr = charAt(offset);\r\n } while (prev !== \"*\" || curr !== \"/\");\r\n ++offset;\r\n if (isComment)\r\n setComment(start, offset - 2);\r\n repeat = true;\r\n } else\r\n return \"/\";\r\n }\r\n } while (repeat);\r\n\r\n // offset !== length if we got here\r\n\r\n var end = offset;\r\n delimRe.lastIndex = 0;\r\n var delim = delimRe.test(charAt(end++));\r\n if (!delim)\r\n while (end < length && !delimRe.test(charAt(end)))\r\n ++end;\r\n var token = source.substring(offset, offset = end);\r\n if (token === \"\\\"\" || token === \"'\")\r\n stringDelim = token;\r\n return token;\r\n }\r\n\r\n /**\r\n * Pushes a token back to the stack.\r\n * @param {string} token Token\r\n * @returns {undefined}\r\n * @inner\r\n */\r\n function push(token) {\r\n stack.push(token);\r\n }\r\n\r\n /**\r\n * Peeks for the next token.\r\n * @returns {?string} Token or `null` on eof\r\n * @inner\r\n */\r\n function peek() {\r\n if (!stack.length) {\r\n var token = next();\r\n if (token === null)\r\n return null;\r\n push(token);\r\n }\r\n return stack[0];\r\n }\r\n\r\n /**\r\n * Skips a token.\r\n * @param {string} expected Expected token\r\n * @param {boolean} [optional=false] Whether the token is optional\r\n * @returns {boolean} `true` when skipped, `false` if not\r\n * @throws {Error} When a required token is not present\r\n * @inner\r\n */\r\n function skip(expected, optional) {\r\n var actual = peek(),\r\n equals = actual === expected;\r\n if (equals) {\r\n next();\r\n return true;\r\n }\r\n if (!optional)\r\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\r\n return false;\r\n }\r\n\r\n return {\r\n next: next,\r\n peek: peek,\r\n push: push,\r\n skip: skip,\r\n line: function() {\r\n return line;\r\n },\r\n cmnt: function(trailingLine) {\r\n var ret;\r\n if (trailingLine === undefined)\r\n ret = commentLine === line - 1 && commentText || null;\r\n else {\r\n if (!commentText)\r\n peek();\r\n ret = commentLine === trailingLine && commentType === \"/\" && commentText || null;\r\n }\r\n if (ret) {\r\n commentType = commentText = null;\r\n commentLine = 0;\r\n }\r\n return ret;\r\n }\r\n };\r\n /* eslint-enable callback-return */\r\n}","\"use strict\";\r\nmodule.exports = Type;\r\n\r\n// extends Namespace\r\nvar Namespace = require(24);\r\n/** @alias Namespace.prototype */\r\nvar NamespacePrototype = Namespace.prototype;\r\n/** @alias Type.prototype */\r\nvar TypePrototype = Namespace.extend(Type);\r\n\r\nType.className = \"Type\";\r\n\r\nvar Enum = require(16),\r\n OneOf = require(26),\r\n Field = require(17),\r\n Service = require(33),\r\n Class = require(11),\r\n Message = require(22),\r\n Reader = require(28),\r\n Writer = require(41),\r\n util = require(37),\r\n encoder = require(15),\r\n decoder = require(14),\r\n verifier = require(40),\r\n converter = require(13);\r\n\r\nvar nestedTypes = [ Enum, Type, Field, Service ];\r\n\r\n/**\r\n * Tests if the specified JSON object describes a message type.\r\n * @param {*} json JSON object to test\r\n * @returns {boolean} `true` if the object describes a message type\r\n */\r\nType.testJSON = function testJSON(json) {\r\n return Boolean(json && json.fields);\r\n};\r\n\r\n/**\r\n * Creates a type from JSON.\r\n * @param {string} name Message name\r\n * @param {Object.} json JSON object\r\n * @returns {Type} Created message type\r\n */\r\nType.fromJSON = function fromJSON(name, json) {\r\n var type = new Type(name, json.options);\r\n type.extensions = json.extensions;\r\n type.reserved = json.reserved;\r\n Object.keys(json.fields).forEach(function(fieldName) {\r\n type.add(Field.fromJSON(fieldName, json.fields[fieldName]));\r\n });\r\n if (json.oneofs)\r\n Object.keys(json.oneofs).forEach(function(oneOfName) {\r\n type.add(OneOf.fromJSON(oneOfName, json.oneofs[oneOfName]));\r\n });\r\n if (json.nested)\r\n Object.keys(json.nested).forEach(function(nestedName) {\r\n var nested = json.nested[nestedName];\r\n for (var i = 0; i < nestedTypes.length; ++i) {\r\n if (nestedTypes[i].testJSON(nested)) {\r\n type.add(nestedTypes[i].fromJSON(nestedName, nested));\r\n return;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n throw Error(\"invalid nested object in \" + type + \": \" + nestedName);\r\n });\r\n if (json.extensions && json.extensions.length)\r\n type.extensions = json.extensions;\r\n if (json.reserved && json.reserved.length)\r\n type.reserved = json.reserved;\r\n if (json.group)\r\n type.group = true;\r\n return type;\r\n};\r\n\r\n/**\r\n * Constructs a new reflected message type instance.\r\n * @classdesc Reflected message type.\r\n * @extends NamespaceBase\r\n * @constructor\r\n * @param {string} name Message name\r\n * @param {Object.} [options] Declared options\r\n */\r\nfunction Type(name, options) {\r\n Namespace.call(this, name, options);\r\n\r\n /**\r\n * Message fields.\r\n * @type {Object.}\r\n */\r\n this.fields = {}; // toJSON, marker\r\n\r\n /**\r\n * Oneofs declared within this namespace, if any.\r\n * @type {Object.}\r\n */\r\n this.oneofs = undefined; // toJSON\r\n\r\n /**\r\n * Extension ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.extensions = undefined; // toJSON\r\n\r\n /**\r\n * Reserved ranges, if any.\r\n * @type {number[][]}\r\n */\r\n this.reserved = undefined; // toJSON\r\n\r\n /*?\r\n * Whether this type is a legacy group.\r\n * @type {boolean|undefined}\r\n */\r\n this.group = undefined; // toJSON\r\n\r\n /**\r\n * Cached fields by id.\r\n * @type {?Object.}\r\n * @private\r\n */\r\n this._fieldsById = null;\r\n\r\n /**\r\n * Cached fields as an array.\r\n * @type {?Field[]}\r\n * @private\r\n */\r\n this._fieldsArray = null;\r\n\r\n /**\r\n * Cached oneofs as an array.\r\n * @type {?OneOf[]}\r\n * @private\r\n */\r\n this._oneofsArray = null;\r\n\r\n /**\r\n * Cached constructor.\r\n * @type {*}\r\n * @private\r\n */\r\n this._ctor = null;\r\n}\r\n\r\nObject.defineProperties(TypePrototype, {\r\n\r\n /**\r\n * Message fields by id.\r\n * @name Type#fieldsById\r\n * @type {Object.}\r\n * @readonly\r\n */\r\n fieldsById: {\r\n get: function() {\r\n /* istanbul ignore next */\r\n if (this._fieldsById)\r\n return this._fieldsById;\r\n this._fieldsById = {};\r\n var names = Object.keys(this.fields);\r\n for (var i = 0; i < names.length; ++i) {\r\n var field = this.fields[names[i]],\r\n id = field.id;\r\n\r\n /* istanbul ignore next */\r\n if (this._fieldsById[id])\r\n throw Error(\"duplicate id \" + id + \" in \" + this);\r\n\r\n this._fieldsById[id] = field;\r\n }\r\n return this._fieldsById;\r\n }\r\n },\r\n\r\n /**\r\n * Fields of this message as an array for iteration.\r\n * @name Type#fieldsArray\r\n * @type {Field[]}\r\n * @readonly\r\n */\r\n fieldsArray: {\r\n get: function() {\r\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\r\n }\r\n },\r\n\r\n /**\r\n * Oneofs of this message as an array for iteration.\r\n * @name Type#oneofsArray\r\n * @type {OneOf[]}\r\n * @readonly\r\n */\r\n oneofsArray: {\r\n get: function() {\r\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\r\n }\r\n },\r\n\r\n /**\r\n * The registered constructor, if any registered, otherwise a generic constructor.\r\n * @name Type#ctor\r\n * @type {Class}\r\n */\r\n ctor: {\r\n get: function() {\r\n return this._ctor || (this._ctor = Class.create(this).constructor);\r\n },\r\n set: function(ctor) {\r\n if (ctor && !(ctor.prototype instanceof Message))\r\n throw TypeError(\"ctor must be a Message constructor\");\r\n if (!ctor.from)\r\n ctor.from = Message.from;\r\n this._ctor = ctor;\r\n }\r\n }\r\n});\r\n\r\nfunction clearCache(type) {\r\n type._fieldsById = type._fieldsArray = type._oneofsArray = type._ctor = null;\r\n delete type.encode;\r\n delete type.decode;\r\n delete type.verify;\r\n return type;\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.toJSON = function toJSON() {\r\n var inherited = NamespacePrototype.toJSON.call(this);\r\n return {\r\n options : inherited && inherited.options || undefined,\r\n oneofs : Namespace.arrayToJSON(this.oneofsArray),\r\n fields : Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; })) || {},\r\n extensions : this.extensions && this.extensions.length ? this.extensions : undefined,\r\n reserved : this.reserved && this.reserved.length ? this.reserved : undefined,\r\n group : this.group || undefined,\r\n nested : inherited && inherited.nested || undefined\r\n };\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.resolveAll = function resolveAll() {\r\n var fields = this.fieldsArray, i = 0;\r\n while (i < fields.length)\r\n fields[i++].resolve();\r\n var oneofs = this.oneofsArray; i = 0;\r\n while (i < oneofs.length)\r\n oneofs[i++].resolve();\r\n return NamespacePrototype.resolve.call(this);\r\n};\r\n\r\n/**\r\n * @override\r\n */\r\nTypePrototype.get = function get(name) {\r\n return NamespacePrototype.get.call(this, name) || this.fields && this.fields[name] || this.oneofs && this.oneofs[name] || null;\r\n};\r\n\r\n/**\r\n * Adds a nested object to this type.\r\n * @param {ReflectionObject} object Nested object to add\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\r\n */\r\nTypePrototype.add = function add(object) {\r\n /* istanbul ignore next */\r\n if (this.get(object.name))\r\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\r\n if (object instanceof Field && object.extend === undefined) {\r\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\r\n // The root object takes care of adding distinct sister-fields to the respective extended\r\n // type instead.\r\n /* istanbul ignore next */\r\n if (this.fieldsById[object.id])\r\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\r\n if (object.parent)\r\n object.parent.remove(object);\r\n this.fields[object.name] = object;\r\n object.message = this;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n if (!this.oneofs)\r\n this.oneofs = {};\r\n this.oneofs[object.name] = object;\r\n object.onAdd(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.add.call(this, object);\r\n};\r\n\r\n/**\r\n * Removes a nested object from this type.\r\n * @param {ReflectionObject} object Nested object to remove\r\n * @returns {Type} `this`\r\n * @throws {TypeError} If arguments are invalid\r\n * @throws {Error} If `object` is not a member of this type\r\n */\r\nTypePrototype.remove = function remove(object) {\r\n if (object instanceof Field && object.extend === undefined) {\r\n // See Type#add for the reason why extension fields are excluded here.\r\n /* istanbul ignore next */\r\n if (!this.fields || this.fields[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.fields[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n if (object instanceof OneOf) {\r\n /* istanbul ignore next */\r\n if (!this.oneofs || this.oneofs[object.name] !== object)\r\n throw Error(object + \" is not a member of \" + this);\r\n delete this.oneofs[object.name];\r\n object.parent = null;\r\n object.onRemove(this);\r\n return clearCache(this);\r\n }\r\n return NamespacePrototype.remove.call(this, object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type using the specified properties.\r\n * @param {Object.} [properties] Properties to set\r\n * @returns {Message} Runtime message\r\n */\r\nTypePrototype.create = function create(properties) {\r\n return new this.ctor(properties);\r\n};\r\n\r\n/**\r\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\r\n * @returns {Type} `this`\r\n */\r\nTypePrototype.setup = function setup() {\r\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\r\n // multiple times (V8, soft-deopt prototype-check).\r\n var fullName = this.fullName,\r\n types = this.fieldsArray.map(function(fld) { return fld.resolve().resolvedType; });\r\n this.encode = encoder(this).eof(fullName + \"$encode\", {\r\n Writer : Writer,\r\n types : types,\r\n util : util\r\n });\r\n this.decode = decoder(this).eof(fullName + \"$decode\", {\r\n Reader : Reader,\r\n types : types,\r\n util : util\r\n });\r\n this.verify = verifier(this).eof(fullName + \"$verify\", {\r\n types : types,\r\n util : util\r\n });\r\n this.fromObject = this.from = converter.fromObject(this).eof(fullName + \"$fromObject\", {\r\n types : types,\r\n util : util\r\n });\r\n this.toObject = converter.toObject(this).eof(fullName + \"$toObject\", {\r\n types : types,\r\n util : util\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Encodes a message of this type.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encode = function encode_setup(message, writer) {\r\n return this.setup().encode(message, writer); // overrides this method\r\n};\r\n\r\n/**\r\n * Encodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Message|Object} message Message instance or plain object\r\n * @param {Writer} [writer] Writer to encode to\r\n * @returns {Writer} writer\r\n */\r\nTypePrototype.encodeDelimited = function encodeDelimited(message, writer) {\r\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\r\n};\r\n\r\n/**\r\n * Decodes a message of this type.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @param {number} [length] Length of the message, if known beforehand\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decode = function decode_setup(reader, length) {\r\n return this.setup().decode(reader, length); // overrides this method\r\n};\r\n\r\n/**\r\n * Decodes a message of this type preceeded by its byte length as a varint.\r\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\r\n * @returns {Message} Decoded message\r\n */\r\nTypePrototype.decodeDelimited = function decodeDelimited(reader) {\r\n if (!(reader instanceof Reader))\r\n reader = Reader.create(reader);\r\n return this.decode(reader, reader.uint32());\r\n};\r\n\r\n/**\r\n * Verifies that field values are valid and that required fields are present.\r\n * @param {Message|Object} message Message to verify\r\n * @returns {?string} `null` if valid, otherwise the reason why it is not\r\n */\r\nTypePrototype.verify = function verify_setup(message) {\r\n return this.setup().verify(message); // overrides this method\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.fromObject = function fromObject(object) {\r\n return this.setup().fromObject(object);\r\n};\r\n\r\n/**\r\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\r\n * This is an alias of {@link Type#fromObject}.\r\n * @function\r\n * @param {Object.} object Plain object\r\n * @returns {Message} Message instance\r\n */\r\nTypePrototype.from = TypePrototype.fromObject;\r\n\r\n/**\r\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\r\n * @typedef ConversionOptions\r\n * @type {Object}\r\n * @property {*} [longs] Long conversion type.\r\n * Valid values are `String` and `Number` (the global types).\r\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\r\n * @property {*} [enums] Enum value conversion type.\r\n * Only valid value is `String` (the global type).\r\n * Defaults to copy the present value, which is the numeric id.\r\n * @property {*} [bytes] Bytes value conversion type.\r\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\r\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\r\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\r\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\r\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\r\n */\r\n\r\n/**\r\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\r\n * @param {Message} message Message instance\r\n * @param {ConversionOptions} [options] Conversion options\r\n * @returns {Object.} Plain object\r\n */\r\nTypePrototype.toObject = function toObject(message, options) {\r\n return this.setup().toObject(message, options);\r\n};\r\n","\"use strict\";\r\n\r\n/**\r\n * Common type constants.\r\n * @namespace\r\n */\r\nvar types = exports;\r\n\r\nvar util = require(37);\r\n\r\nvar s = [\r\n \"double\", // 0\r\n \"float\", // 1\r\n \"int32\", // 2\r\n \"uint32\", // 3\r\n \"sint32\", // 4\r\n \"fixed32\", // 5\r\n \"sfixed32\", // 6\r\n \"int64\", // 7\r\n \"uint64\", // 8\r\n \"sint64\", // 9\r\n \"fixed64\", // 10\r\n \"sfixed64\", // 11\r\n \"bool\", // 12\r\n \"string\", // 13\r\n \"bytes\" // 14\r\n];\r\n\r\nfunction bake(values, offset) {\r\n var i = 0, o = {};\r\n offset |= 0;\r\n while (i < values.length) o[s[i + offset]] = values[i++];\r\n return o;\r\n}\r\n\r\n/**\r\n * Basic type wire types.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n * @property {number} bytes=2 Ldelim wire type\r\n */\r\ntypes.basic = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2,\r\n /* bytes */ 2\r\n]);\r\n\r\n/**\r\n * Basic type defaults.\r\n * @type {Object.}\r\n * @property {number} double=0 Double default\r\n * @property {number} float=0 Float default\r\n * @property {number} int32=0 Int32 default\r\n * @property {number} uint32=0 Uint32 default\r\n * @property {number} sint32=0 Sint32 default\r\n * @property {number} fixed32=0 Fixed32 default\r\n * @property {number} sfixed32=0 Sfixed32 default\r\n * @property {number} int64=0 Int64 default\r\n * @property {number} uint64=0 Uint64 default\r\n * @property {number} sint64=0 Sint32 default\r\n * @property {number} fixed64=0 Fixed64 default\r\n * @property {number} sfixed64=0 Sfixed64 default\r\n * @property {boolean} bool=false Bool default\r\n * @property {string} string=\"\" String default\r\n * @property {Array.} bytes=Array(0) Bytes default\r\n * @property {Message} message=null Message default\r\n */\r\ntypes.defaults = bake([\r\n /* double */ 0,\r\n /* float */ 0,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 0,\r\n /* sfixed32 */ 0,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 0,\r\n /* sfixed64 */ 0,\r\n /* bool */ false,\r\n /* string */ \"\",\r\n /* bytes */ util.emptyArray,\r\n /* message */ null\r\n]);\r\n\r\n/**\r\n * Basic long type wire types.\r\n * @type {Object.}\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n */\r\ntypes.long = bake([\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1\r\n], 7);\r\n\r\n/**\r\n * Allowed types for map keys with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n * @property {number} string=2 Ldelim wire type\r\n */\r\ntypes.mapKey = bake([\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0,\r\n /* string */ 2\r\n], 2);\r\n\r\n/**\r\n * Allowed types for packed repeated fields with their associated wire type.\r\n * @type {Object.}\r\n * @property {number} double=1 Fixed64 wire type\r\n * @property {number} float=5 Fixed32 wire type\r\n * @property {number} int32=0 Varint wire type\r\n * @property {number} uint32=0 Varint wire type\r\n * @property {number} sint32=0 Varint wire type\r\n * @property {number} fixed32=5 Fixed32 wire type\r\n * @property {number} sfixed32=5 Fixed32 wire type\r\n * @property {number} int64=0 Varint wire type\r\n * @property {number} uint64=0 Varint wire type\r\n * @property {number} sint64=0 Varint wire type\r\n * @property {number} fixed64=1 Fixed64 wire type\r\n * @property {number} sfixed64=1 Fixed64 wire type\r\n * @property {number} bool=0 Varint wire type\r\n */\r\ntypes.packed = bake([\r\n /* double */ 1,\r\n /* float */ 5,\r\n /* int32 */ 0,\r\n /* uint32 */ 0,\r\n /* sint32 */ 0,\r\n /* fixed32 */ 5,\r\n /* sfixed32 */ 5,\r\n /* int64 */ 0,\r\n /* uint64 */ 0,\r\n /* sint64 */ 0,\r\n /* fixed64 */ 1,\r\n /* sfixed64 */ 1,\r\n /* bool */ 0\r\n]);\r\n","\"use strict\";\r\n\r\n/**\r\n * Various utility functions.\r\n * @namespace\r\n */\r\nvar util = module.exports = require(39);\r\n\r\nutil.codegen = require(3);\r\nutil.extend = require(5);\r\nutil.fetch = require(6);\r\nutil.path = require(8);\r\n\r\n/**\r\n * Node's fs module if available.\r\n * @type {Object.}\r\n */\r\nutil.fs = util.inquire(\"fs\");\r\n\r\n/**\r\n * Converts an object's values to an array.\r\n * @param {Object.} object Object to convert\r\n * @returns {Array.<*>} Converted array\r\n */\r\nutil.toArray = function toArray(object) {\r\n return object ? Object.keys(object).map(function(key) {\r\n return object[key];\r\n }) : [];\r\n};\r\n\r\n/**\r\n * Returns a safe property accessor for the specified properly name.\r\n * @param {string} prop Property name\r\n * @returns {string} Safe accessor\r\n */\r\nutil.safeProp = function safeProp(prop) {\r\n return \"[\\\"\" + prop.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, \"\\\\\\\"\") + \"\\\"]\";\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to upper case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.ucFirst = function ucFirst(str) {\r\n return str.charAt(0).toUpperCase() + str.substring(1);\r\n};\r\n","\"use strict\";\r\nmodule.exports = LongBits;\r\n\r\nvar util = require(39);\r\n\r\n/**\r\n * Any compatible Long instance.\r\n * \r\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\r\n * @typedef Long\r\n * @type {Object}\r\n * @property {number} low Low bits\r\n * @property {number} high High bits\r\n * @property {boolean} unsigned Whether unsigned or not\r\n */\r\n\r\n/**\r\n * Constructs new long bits.\r\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\r\n * @memberof util\r\n * @constructor\r\n * @param {number} lo Low bits\r\n * @param {number} hi High bits\r\n */\r\nfunction LongBits(lo, hi) { // make sure to always call this with unsigned 32bits for proper optimization\r\n\r\n /**\r\n * Low bits.\r\n * @type {number}\r\n */\r\n this.lo = lo;\r\n\r\n /**\r\n * High bits.\r\n * @type {number}\r\n */\r\n this.hi = hi;\r\n}\r\n\r\n/** @alias util.LongBits.prototype */\r\nvar LongBitsPrototype = LongBits.prototype;\r\n\r\n/**\r\n * Zero bits.\r\n * @memberof util.LongBits\r\n * @type {util.LongBits}\r\n */\r\nvar zero = LongBits.zero = new LongBits(0, 0);\r\n\r\nzero.toNumber = function() { return 0; };\r\nzero.zzEncode = zero.zzDecode = function() { return this; };\r\nzero.length = function() { return 1; };\r\n\r\n/**\r\n * Zero hash.\r\n * @memberof util.LongBits\r\n * @type {string}\r\n */\r\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\r\n\r\n/**\r\n * Constructs new long bits from the specified number.\r\n * @param {number} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.fromNumber = function fromNumber(value) {\r\n if (value === 0)\r\n return zero;\r\n var sign = value < 0;\r\n if (sign)\r\n value = -value;\r\n var lo = value >>> 0,\r\n hi = (value - lo) / 4294967296 >>> 0; \r\n if (sign) {\r\n hi = ~hi >>> 0;\r\n lo = ~lo >>> 0;\r\n if (++lo > 4294967295) {\r\n lo = 0;\r\n if (++hi > 4294967295)\r\n hi = 0;\r\n }\r\n }\r\n return new LongBits(lo, hi);\r\n};\r\n\r\n/**\r\n * Constructs new long bits from a number, long or string.\r\n * @param {Long|number|string} value Value\r\n * @returns {util.LongBits} Instance\r\n */\r\nLongBits.from = function from(value) {\r\n if (typeof value === \"number\")\r\n return LongBits.fromNumber(value);\r\n if (typeof value === \"string\") {\r\n /* istanbul ignore else */\r\n if (util.Long)\r\n value = util.Long.fromString(value);\r\n else\r\n return LongBits.fromNumber(parseInt(value, 10));\r\n }\r\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a possibly unsafe JavaScript number.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {number} Possibly unsafe number\r\n */\r\nLongBitsPrototype.toNumber = function toNumber(unsigned) {\r\n if (!unsigned && this.hi >>> 31) {\r\n var lo = ~this.lo + 1 >>> 0,\r\n hi = ~this.hi >>> 0;\r\n if (!lo)\r\n hi = hi + 1 >>> 0;\r\n return -(lo + hi * 4294967296);\r\n }\r\n return this.lo + this.hi * 4294967296;\r\n};\r\n\r\n/**\r\n * Converts this long bits to a long.\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long} Long\r\n */\r\nLongBitsPrototype.toLong = function toLong(unsigned) {\r\n return util.Long\r\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\r\n /* istanbul ignore next */\r\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\r\n};\r\n\r\nvar charCodeAt = String.prototype.charCodeAt;\r\n\r\n/**\r\n * Constructs new long bits from the specified 8 characters long hash.\r\n * @param {string} hash Hash\r\n * @returns {util.LongBits} Bits\r\n */\r\nLongBits.fromHash = function fromHash(hash) {\r\n if (hash === zeroHash)\r\n return zero;\r\n return new LongBits(\r\n ( charCodeAt.call(hash, 0)\r\n | charCodeAt.call(hash, 1) << 8\r\n | charCodeAt.call(hash, 2) << 16\r\n | charCodeAt.call(hash, 3) << 24) >>> 0\r\n ,\r\n ( charCodeAt.call(hash, 4)\r\n | charCodeAt.call(hash, 5) << 8\r\n | charCodeAt.call(hash, 6) << 16\r\n | charCodeAt.call(hash, 7) << 24) >>> 0\r\n );\r\n};\r\n\r\n/**\r\n * Converts this long bits to a 8 characters long hash.\r\n * @returns {string} Hash\r\n */\r\nLongBitsPrototype.toHash = function toHash() {\r\n return String.fromCharCode(\r\n this.lo & 255,\r\n this.lo >>> 8 & 255,\r\n this.lo >>> 16 & 255,\r\n this.lo >>> 24 ,\r\n this.hi & 255,\r\n this.hi >>> 8 & 255,\r\n this.hi >>> 16 & 255,\r\n this.hi >>> 24\r\n );\r\n};\r\n\r\n/**\r\n * Zig-zag encodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzEncode = function zzEncode() {\r\n var mask = this.hi >> 31;\r\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\r\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Zig-zag decodes this long bits.\r\n * @returns {util.LongBits} `this`\r\n */\r\nLongBitsPrototype.zzDecode = function zzDecode() {\r\n var mask = -(this.lo & 1);\r\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\r\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Calculates the length of this longbits when encoded as a varint.\r\n * @returns {number} Length\r\n */\r\nLongBitsPrototype.length = function length() {\r\n var part0 = this.lo,\r\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\r\n part2 = this.hi >>> 24;\r\n return part2 === 0\r\n ? part1 === 0\r\n ? part0 < 16384\r\n ? part0 < 128 ? 1 : 2\r\n : part0 < 2097152 ? 3 : 4\r\n : part1 < 16384\r\n ? part1 < 128 ? 5 : 6\r\n : part1 < 2097152 ? 7 : 8\r\n : part2 < 128 ? 9 : 10;\r\n};\r\n","\"use strict\";\r\nvar util = exports;\r\n\r\nutil.asPromise = require(1);\r\nutil.base64 = require(2);\r\nutil.EventEmitter = require(4);\r\nutil.inquire = require(7);\r\nutil.utf8 = require(10);\r\nutil.pool = require(9);\r\nutil.LongBits = require(38);\r\n\r\n/**\r\n * An immuable empty array.\r\n * @memberof util\r\n * @type {Array.<*>}\r\n */\r\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ [];\r\n\r\n/**\r\n * An immutable empty object.\r\n * @type {Object}\r\n */\r\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {};\r\n\r\n/**\r\n * Whether running within node or not.\r\n * @memberof util\r\n * @type {boolean}\r\n */\r\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\r\n\r\n/**\r\n * Tests if the specified value is an integer.\r\n * @function\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is an integer\r\n */\r\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\r\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a string.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a string\r\n */\r\nutil.isString = function isString(value) {\r\n return typeof value === \"string\" || value instanceof String;\r\n};\r\n\r\n/**\r\n * Tests if the specified value is a non-null object.\r\n * @param {*} value Value to test\r\n * @returns {boolean} `true` if the value is a non-null object\r\n */\r\nutil.isObject = function isObject(value) {\r\n return value && typeof value === \"object\";\r\n};\r\n\r\n/**\r\n * Node's Buffer class if available.\r\n * @type {?function(new: Buffer)}\r\n */\r\nutil.Buffer = (function() {\r\n try {\r\n var Buffer = util.inquire(\"buffer\").Buffer;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.prototype.utf8Write) // refuse to use non-node buffers (performance)\r\n return null;\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.from)\r\n Buffer.from = function from(value, encoding) { return new Buffer(value, encoding); };\r\n\r\n /* istanbul ignore next */\r\n if (!Buffer.allocUnsafe)\r\n Buffer.allocUnsafe = function allocUnsafe(size) { return new Buffer(size); };\r\n\r\n return Buffer;\r\n\r\n } catch (e) {\r\n /* istanbul ignore next */\r\n return null;\r\n }\r\n})();\r\n\r\n/**\r\n * Creates a new buffer of whatever type supported by the environment.\r\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\r\n * @returns {Uint8Array} Buffer\r\n */\r\nutil.newBuffer = function newBuffer(sizeOrArray) {\r\n /* istanbul ignore next */\r\n return typeof sizeOrArray === \"number\"\r\n ? util.Buffer\r\n ? util.Buffer.allocUnsafe(sizeOrArray) // polyfilled\r\n : new util.Array(sizeOrArray)\r\n : util.Buffer\r\n ? util.Buffer.from(sizeOrArray) // polyfilled\r\n : typeof Uint8Array === \"undefined\"\r\n ? sizeOrArray\r\n : new Uint8Array(sizeOrArray);\r\n};\r\n\r\n/**\r\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\r\n * @type {?function(new: Uint8Array, *)}\r\n */\r\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\r\n\r\n/**\r\n * Long.js's Long class if available.\r\n * @type {?function(new: Long)}\r\n */\r\nutil.Long = /* istanbul ignore next */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || util.inquire(\"long\");\r\n\r\n/**\r\n * Converts a number or long to an 8 characters long hash string.\r\n * @param {Long|number} value Value to convert\r\n * @returns {string} Hash\r\n */\r\nutil.longToHash = function longToHash(value) {\r\n return value\r\n ? util.LongBits.from(value).toHash()\r\n : util.LongBits.zeroHash;\r\n};\r\n\r\n/**\r\n * Converts an 8 characters long hash string to a long or number.\r\n * @param {string} hash Hash\r\n * @param {boolean} [unsigned=false] Whether unsigned or not\r\n * @returns {Long|number} Original value\r\n */\r\nutil.longFromHash = function longFromHash(hash, unsigned) {\r\n var bits = util.LongBits.fromHash(hash);\r\n if (util.Long)\r\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\r\n return bits.toNumber(Boolean(unsigned));\r\n};\r\n\r\n/**\r\n * Merges the properties of the source object into the destination object.\r\n * @param {Object.} dst Destination object\r\n * @param {Object.} src Source object\r\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\r\n * @returns {Object.} Destination object\r\n */\r\nutil.merge = function merge(dst, src, ifNotSet) { // used by converters\r\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\r\n if (dst[keys[i]] === undefined || !ifNotSet)\r\n dst[keys[i]] = src[keys[i]];\r\n return dst;\r\n};\r\n\r\n/**\r\n * Converts the first character of a string to lower case.\r\n * @param {string} str String to convert\r\n * @returns {string} Converted string\r\n */\r\nutil.lcFirst = function lcFirst(str) {\r\n return str.charAt(0).toLowerCase() + str.substring(1);\r\n};\r\n\r\n/**\r\n * Builds a getter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function():string|undefined} Unbound getter\r\n */\r\nutil.oneOfGetter = function getOneOf(fieldNames) {\r\n var fieldMap = {};\r\n fieldNames.forEach(function(name) {\r\n fieldMap[name] = 1;\r\n });\r\n\r\n /**\r\n * @returns {string|undefined} Set field name, if any\r\n * @this Object\r\n * @ignore\r\n */\r\n return function() { // eslint-disable-line consistent-return\r\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\r\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\r\n return keys[i];\r\n };\r\n};\r\n\r\n/**\r\n * Builds a setter for a oneof's present field name.\r\n * @param {string[]} fieldNames Field names\r\n * @returns {function(?string):undefined} Unbound setter\r\n */\r\nutil.oneOfSetter = function setOneOf(fieldNames) {\r\n\r\n /**\r\n * @param {string} name Field name\r\n * @returns {undefined}\r\n * @this Object\r\n * @ignore\r\n */\r\n return function(name) {\r\n for (var i = 0; i < fieldNames.length; ++i)\r\n if (fieldNames[i] !== name)\r\n delete this[fieldNames[i]];\r\n };\r\n};\r\n\r\n/**\r\n * Lazily resolves fully qualified type names against the specified root.\r\n * @param {Root} root Root instanceof\r\n * @param {Object.} lazyTypes Type names\r\n * @returns {undefined}\r\n */\r\nutil.lazyResolve = function lazyResolve(root, lazyTypes) {\r\n lazyTypes.forEach(function(types) {\r\n Object.keys(types).forEach(function(index) {\r\n var path = types[index |= 0].split(\".\"),\r\n ptr = root;\r\n while (path.length)\r\n ptr = ptr[path.shift()];\r\n types[index] = ptr;\r\n });\r\n });\r\n};\r\n\r\n/**\r\n * Default conversion options used for toJSON implementations.\r\n * @type {ConversionOptions}\r\n */\r\nutil.toJSONOptions = {\r\n longs: String,\r\n enums: String,\r\n bytes: String\r\n};\r\n","\"use strict\";\r\nmodule.exports = verifier;\r\n\r\nvar Enum = require(16),\r\n util = require(37);\r\n\r\nfunction invalid(field, expected) {\r\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\r\n}\r\n\r\n/**\r\n * Generates a partial value verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {number} fieldIndex Field index\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n if (field.resolvedType) {\r\n if (field.resolvedType instanceof Enum) { gen\r\n (\"switch(%s){\", ref)\r\n (\"default:\")\r\n (\"return%j\", invalid(field, \"enum value\"));\r\n var values = util.toArray(field.resolvedType.values);\r\n for (var j = 0; j < values.length; ++j) gen\r\n (\"case %d:\", values[j]);\r\n gen\r\n (\"break\")\r\n (\"}\");\r\n } else gen\r\n (\"var e=types[%d].verify(%s);\", fieldIndex, ref)\r\n (\"if(e)\")\r\n (\"return%j+e\", field.name + \".\");\r\n } else {\r\n switch (field.type) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!util.isInteger(%s))\", ref)\r\n (\"return%j\", invalid(field, \"integer\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\r\n (\"return%j\", invalid(field, \"integer|Long\"));\r\n break;\r\n case \"float\":\r\n case \"double\": gen\r\n (\"if(typeof %s!==\\\"number\\\")\", ref)\r\n (\"return%j\", invalid(field, \"number\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\r\n (\"return%j\", invalid(field, \"boolean\"));\r\n break;\r\n case \"string\": gen\r\n (\"if(!util.isString(%s))\", ref)\r\n (\"return%j\", invalid(field, \"string\"));\r\n break;\r\n case \"bytes\": gen\r\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\r\n (\"return%j\", invalid(field, \"buffer\"));\r\n break;\r\n }\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a partial key verifier.\r\n * @param {Codegen} gen Codegen instance\r\n * @param {Field} field Reflected field\r\n * @param {string} ref Variable reference\r\n * @returns {Codegen} Codegen instance\r\n * @ignore\r\n */\r\nfunction genVerifyKey(gen, field, ref) {\r\n /* eslint-disable no-unexpected-multiline */\r\n switch (field.keyType) {\r\n case \"int32\":\r\n case \"uint32\":\r\n case \"sint32\":\r\n case \"fixed32\":\r\n case \"sfixed32\": gen\r\n (\"if(!/^-?(?:0|[1-9][0-9]*)$/.test(%s))\", ref) // it's important not to use any literals here that might be confused with short variable names by pbjs' beautify\r\n (\"return%j\", invalid(field, \"integer key\"));\r\n break;\r\n case \"int64\":\r\n case \"uint64\":\r\n case \"sint64\":\r\n case \"fixed64\":\r\n case \"sfixed64\": gen\r\n (\"if(!/^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/.test(%s))\", ref) // see comment above: x is ok, d is not\r\n (\"return%j\", invalid(field, \"integer|Long key\"));\r\n break;\r\n case \"bool\": gen\r\n (\"if(!/^true|false|0|1$/.test(%s))\", ref)\r\n (\"return%j\", invalid(field, \"boolean key\"));\r\n break;\r\n }\r\n return gen;\r\n /* eslint-enable no-unexpected-multiline */\r\n}\r\n\r\n/**\r\n * Generates a verifier specific to the specified message type.\r\n * @param {Type} mtype Message type\r\n * @returns {Codegen} Codegen instance\r\n */\r\nfunction verifier(mtype) {\r\n /* eslint-disable no-unexpected-multiline */\r\n var fields = mtype.fieldsArray;\r\n if (!fields.length)\r\n return util.codegen()(\"return null\");\r\n var gen = util.codegen(\"m\");\r\n\r\n for (var i = 0; i < fields.length; ++i) {\r\n var field = fields[i].resolve(),\r\n ref = \"m\" + util.safeProp(field.name);\r\n\r\n // map fields\r\n if (field.map) { gen\r\n (\"if(%s!==undefined){\", ref)\r\n (\"if(!util.isObject(%s))\", ref)\r\n (\"return%j\", invalid(field, \"object\"))\r\n (\"var k=Object.keys(%s)\", ref)\r\n (\"for(var i=0;i 127) {\r\n buf[pos++] = val & 127 | 128;\r\n val >>>= 7;\r\n }\r\n buf[pos] = val;\r\n}\r\n\r\n/**\r\n * Constructs a new varint writer operation instance.\r\n * @classdesc Scheduled varint writer operation.\r\n * @extends Op\r\n * @constructor\r\n * @param {number} len Value byte length\r\n * @param {number} val Value to write\r\n * @ignore\r\n */\r\nfunction VarintOp(len, val) {\r\n this.len = len;\r\n this.next = undefined;\r\n this.val = val;\r\n}\r\n\r\nVarintOp.prototype = Object.create(Op.prototype);\r\nVarintOp.prototype.fn = writeVarint32;\r\n\r\n/**\r\n * Writes an unsigned 32 bit value as a varint.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.uint32 = function write_uint32(value) {\r\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\r\n // uint32 is by far the most frequently used operation and benefits significantly from this.\r\n this.len += (this.tail = this.tail.next = new VarintOp(\r\n (value = value >>> 0)\r\n < 128 ? 1\r\n : value < 16384 ? 2\r\n : value < 2097152 ? 3\r\n : value < 268435456 ? 4\r\n : 5,\r\n value)).len;\r\n return this;\r\n};\r\n\r\n/**\r\n * Writes a signed 32 bit value as a varint.\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.int32 = function write_int32(value) {\r\n return value < 0\r\n ? this.push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\r\n : this.uint32(value);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as a varint, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sint32 = function write_sint32(value) {\r\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\r\n};\r\n\r\nfunction writeVarint64(val, buf, pos) {\r\n while (val.hi) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\r\n val.hi >>>= 7;\r\n }\r\n while (val.lo > 127) {\r\n buf[pos++] = val.lo & 127 | 128;\r\n val.lo = val.lo >>> 7;\r\n }\r\n buf[pos++] = val.lo;\r\n}\r\n\r\n/**\r\n * Writes an unsigned 64 bit value as a varint.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.uint64 = function write_uint64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint.\r\n * @function\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.int64 = WriterPrototype.uint64;\r\n\r\n/**\r\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sint64 = function write_sint64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeVarint64, bits.length(), bits);\r\n};\r\n\r\n/**\r\n * Writes a boolish value as a varint.\r\n * @param {boolean} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bool = function write_bool(value) {\r\n return this.push(writeByte, 1, value ? 1 : 0);\r\n};\r\n\r\nfunction writeFixed32(val, buf, pos) {\r\n buf[pos++] = val & 255;\r\n buf[pos++] = val >>> 8 & 255;\r\n buf[pos++] = val >>> 16 & 255;\r\n buf[pos ] = val >>> 24;\r\n}\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fixed32 = function write_fixed32(value) {\r\n return this.push(writeFixed32, 4, value >>> 0);\r\n};\r\n\r\n/**\r\n * Writes a 32 bit value as fixed 32 bits, zig-zag encoded.\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.sfixed32 = function write_sfixed32(value) {\r\n return this.push(writeFixed32, 4, value << 1 ^ value >> 31);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.fixed64 = function write_fixed64(value) {\r\n var bits = LongBits.from(value);\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\n/**\r\n * Writes a 64 bit value as fixed 64 bits, zig-zag encoded.\r\n * @param {Long|number|string} value Value to write\r\n * @returns {Writer} `this`\r\n * @throws {TypeError} If `value` is a string and no long library is present.\r\n */\r\nWriterPrototype.sfixed64 = function write_sfixed64(value) {\r\n var bits = LongBits.from(value).zzEncode();\r\n return this.push(writeFixed32, 4, bits.lo).push(writeFixed32, 4, bits.hi);\r\n};\r\n\r\nvar writeFloat = typeof Float32Array !== \"undefined\"\r\n ? (function() {\r\n var f32 = new Float32Array(1),\r\n f8b = new Uint8Array(f32.buffer);\r\n f32[0] = -0;\r\n return f8b[3] // already le?\r\n ? function writeFloat_f32(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos ] = f8b[3];\r\n }\r\n /* istanbul ignore next */\r\n : function writeFloat_f32_le(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeFloat_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0)\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(value))\r\n writeFixed32(2147483647, buf, pos);\r\n else if (value > 3.4028234663852886e+38) // +-Infinity\r\n writeFixed32((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (value < 1.1754943508222875e-38) // denormal\r\n writeFixed32((sign << 31 | Math.round(value / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2),\r\n mantissa = Math.round(value * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeFixed32((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n };\r\n\r\n/**\r\n * Writes a float (32 bit).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.float = function write_float(value) {\r\n return this.push(writeFloat, 4, value);\r\n};\r\n\r\nvar writeDouble = typeof Float64Array !== \"undefined\"\r\n ? (function() {\r\n var f64 = new Float64Array(1),\r\n f8b = new Uint8Array(f64.buffer);\r\n f64[0] = -0;\r\n return f8b[7] // already le?\r\n ? function writeDouble_f64(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[0];\r\n buf[pos++] = f8b[1];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[6];\r\n buf[pos ] = f8b[7];\r\n }\r\n /* istanbul ignore next */\r\n : function writeDouble_f64_le(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos++] = f8b[7];\r\n buf[pos++] = f8b[6];\r\n buf[pos++] = f8b[5];\r\n buf[pos++] = f8b[4];\r\n buf[pos++] = f8b[3];\r\n buf[pos++] = f8b[2];\r\n buf[pos++] = f8b[1];\r\n buf[pos ] = f8b[0];\r\n };\r\n })()\r\n /* istanbul ignore next */\r\n : function writeDouble_ieee754(value, buf, pos) {\r\n var sign = value < 0 ? 1 : 0;\r\n if (sign)\r\n value = -value;\r\n if (value === 0) {\r\n writeFixed32(0, buf, pos);\r\n writeFixed32(1 / value > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + 4);\r\n } else if (isNaN(value)) {\r\n writeFixed32(4294967295, buf, pos);\r\n writeFixed32(2147483647, buf, pos + 4);\r\n } else if (value > 1.7976931348623157e+308) { // +-Infinity\r\n writeFixed32(0, buf, pos);\r\n writeFixed32((sign << 31 | 2146435072) >>> 0, buf, pos + 4);\r\n } else {\r\n var mantissa;\r\n if (value < 2.2250738585072014e-308) { // denormal\r\n mantissa = value / 5e-324;\r\n writeFixed32(mantissa >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + 4);\r\n } else {\r\n var exponent = Math.floor(Math.log(value) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = value * Math.pow(2, -exponent);\r\n writeFixed32(mantissa * 4503599627370496 >>> 0, buf, pos);\r\n writeFixed32((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + 4);\r\n }\r\n }\r\n };\r\n\r\n/**\r\n * Writes a double (64 bit float).\r\n * @function\r\n * @param {number} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.double = function write_double(value) {\r\n return this.push(writeDouble, 8, value);\r\n};\r\n\r\nvar writeBytes = util.Array.prototype.set\r\n ? function writeBytes_set(val, buf, pos) {\r\n buf.set(val, pos); // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytes_for(val, buf, pos) {\r\n for (var i = 0; i < val.length; ++i)\r\n buf[pos + i] = val[i];\r\n };\r\n\r\n/**\r\n * Writes a sequence of bytes.\r\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.bytes = function write_bytes(value) {\r\n var len = value.length >>> 0;\r\n if (!len)\r\n return this.push(writeByte, 1, 0);\r\n if (typeof value === \"string\") {\r\n var buf = Writer.alloc(len = base64.length(value));\r\n base64.decode(value, buf, 0);\r\n value = buf;\r\n }\r\n return this.uint32(len).push(writeBytes, len, value);\r\n};\r\n\r\n/**\r\n * Writes a string.\r\n * @param {string} value Value to write\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.string = function write_string(value) {\r\n var len = utf8.length(value);\r\n return len\r\n ? this.uint32(len).push(utf8.write, len, value)\r\n : this.push(writeByte, 1, 0);\r\n};\r\n\r\n/**\r\n * Forks this writer's state by pushing it to a stack.\r\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.fork = function fork() {\r\n this.states = new State(this);\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets this instance to the last state.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.reset = function reset() {\r\n if (this.states) {\r\n this.head = this.states.head;\r\n this.tail = this.states.tail;\r\n this.len = this.states.len;\r\n this.states = this.states.next;\r\n } else {\r\n this.head = this.tail = new Op(noop, 0, 0);\r\n this.len = 0;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\r\n * @returns {Writer} `this`\r\n */\r\nWriterPrototype.ldelim = function ldelim() {\r\n var head = this.head,\r\n tail = this.tail,\r\n len = this.len;\r\n this.reset().uint32(len);\r\n if (len) {\r\n this.tail.next = head.next; // skip noop\r\n this.tail = tail;\r\n this.len += len;\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Finishes the write operation.\r\n * @returns {Uint8Array} Finished buffer\r\n */\r\nWriterPrototype.finish = function finish() {\r\n var head = this.head.next, // skip noop\r\n buf = this.constructor.alloc(this.len),\r\n pos = 0;\r\n while (head) {\r\n head.fn(head.val, buf, pos);\r\n pos += head.len;\r\n head = head.next;\r\n }\r\n // this.head = this.tail = null;\r\n return buf;\r\n};\r\n","\"use strict\";\r\nmodule.exports = BufferWriter;\r\n\r\n// extends Writer\r\nvar Writer = require(41);\r\n/** @alias BufferWriter.prototype */\r\nvar BufferWriterPrototype = BufferWriter.prototype = Object.create(Writer.prototype);\r\nBufferWriterPrototype.constructor = BufferWriter;\r\n\r\nvar util = require(39);\r\n\r\nvar Buffer = util.Buffer;\r\n\r\n/**\r\n * Constructs a new buffer writer instance.\r\n * @classdesc Wire format writer using node buffers.\r\n * @extends Writer\r\n * @constructor\r\n */\r\nfunction BufferWriter() {\r\n Writer.call(this);\r\n}\r\n\r\n/**\r\n * Allocates a buffer of the specified size.\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\nBufferWriter.alloc = function alloc_buffer(size) {\r\n return (BufferWriter.alloc = Buffer.allocUnsafe)(size);\r\n};\r\n\r\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && Buffer.prototype.set.name === \"set\"\r\n ? function writeBytesBuffer_set(val, buf, pos) {\r\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\r\n // also works for plain array values\r\n }\r\n /* istanbul ignore next */\r\n : function writeBytesBuffer_copy(val, buf, pos) {\r\n if (val.copy) // Buffer values\r\n val.copy(buf, pos, 0, val.length);\r\n else for (var i = 0; i < val.length;) // plain array values\r\n buf[pos++] = val[i++];\r\n };\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.bytes = function write_bytes_buffer(value) {\r\n if (typeof value === \"string\")\r\n value = Buffer.from(value, \"base64\"); // polyfilled\r\n var len = value.length >>> 0;\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeBytesBuffer, len, value);\r\n return this;\r\n};\r\n\r\nfunction writeStringBuffer(val, buf, pos) {\r\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\r\n util.utf8.write(val, buf, pos);\r\n else\r\n buf.utf8Write(val, pos);\r\n}\r\n\r\n/**\r\n * @override\r\n */\r\nBufferWriterPrototype.string = function write_string_buffer(value) {\r\n var len = Buffer.byteLength(value);\r\n this.uint32(len);\r\n if (len)\r\n this.push(writeStringBuffer, len, value);\r\n return this;\r\n};\r\n"],"sourceRoot":"."} \ No newline at end of file diff --git a/src/parse.js b/src/parse.js index be8bbba57..2c0042870 100644 --- a/src/parse.js +++ b/src/parse.js @@ -494,24 +494,28 @@ function parse(source, root, options) { } function parseOptionValue(parent, name) { - if (skip("{", true)) { - while ((token = next()) !== "}") { - - /* istanbul ignore next */ - if (!isName(token)) + if (skip("{", true)) { // { a: "foo" b { c: "bar" } } + /* istanbul ignore next */ + do { + if (!isName(token = next())) throw illegal(token, "name"); - - skip(":"); - // if (skip(":", true)) - parent.setOption(name + "." + token, readValue(true)); - // else - // parseOptionValue(parent, name + "." + token); - } + if (peek() === "{") + parseOptionValue(parent, name + "." + token); + else { + skip(":"); + setOption(parent, name + "." + token, readValue(true)); + } + } while (!skip("}", true)); } else - parent.setOption(name, readValue(true)); + setOption(parent, name, readValue(true)); // Does not enforce a delimiter to be universal } + function setOption(parent, name, value) { + if (parent.setOption) + parent.setOption(name, value); + } + function parseInlineOptions(parent) { if (skip("[", true)) { do { diff --git a/tests/comp_options-textformat.js b/tests/comp_options-textformat.js index d32d0a872..62440b3be 100644 --- a/tests/comp_options-textformat.js +++ b/tests/comp_options-textformat.js @@ -13,11 +13,13 @@ extend google.protobuf.FieldOptions {\ }\ message Test {\ string value = 1 [(my_options) = { a: \"foo\" b: \"bar\" }];\ + string value2 = 2 [(my_options) = { a: \"foo\" b { c: \"bar\" } }];\ }"; tape.test("options in textformat", function(test) { var root = protobuf.parse(proto).root; var Test = root.lookup("Test"); test.same(Test.fields.value.options, { "(my_options).a": "foo", "(my_options).b": "bar" }, "should parse correctly"); + test.same(Test.fields.value2.options, { "(my_options).a": "foo", "(my_options).b.c": "bar" }, "should parse correctly when nested"); test.end(); }); diff --git a/tests/data/uncommon.proto b/tests/data/uncommon.proto index a20e8d44a..b3f6b22e3 100644 --- a/tests/data/uncommon.proto +++ b/tests/data/uncommon.proto @@ -41,6 +41,8 @@ enum Test3; enum Test4{ option (custom).foo = ""; + ONE = 1 [foo="bar"]; + TWO = 2 [(my_options) = { a: "foo" b { c: "bar" } }]; }; service Test5;