diff --git a/.gitignore b/.gitignore index ff693cf..ab7a073 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ frida-example .DS_Store **/__pycache__ +node_modules +tmp +.uv-cache diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/README.md b/README.md index 7b735fe..48bc31e 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,8 @@ > 感谢志远大佬的WeChatOpenDevTool开源 代码只是把node改用python3重写,简单实现了一些自动化问题,重要代码都是原作者的。 +### Windows 微信 3.x + | Windows 微信版本 | 小程序版本 | 是否为最新版 | | ---------------- | ---------- | ------------ | | | 11275_x64 | ✅ | @@ -51,6 +53,21 @@ --- +### Windows 微信 4.x / WMPF + +> 微信 4 已切换为 Remote Debug/CDP 调试链路,不再沿用旧版内置 F12 补丁。 +> +> 实现来源说明: +> 微信 4 兼容逻辑主要参考了 [`evi0s/WMPFDebugger`](https://github.com/evi0s/WMPFDebugger) 的公开实现、适配说明与相关 issue 讨论;本仓库在此基础上改造成了 Python 主控 + Frida 注入 + 本地 Node bridge 的版本。 + +已内置地址配置的 WMPF 版本: + +`11581` `11633` `13331` `13341` `13487` `13639` `13655` `13871` `13909` `14161` `14199` `14315` `16133` `16203` `16389` `16467` `16771` `16815` `16965` `17037` `17071` `17127` `18055` `18151` `18787` `18891` `18955` `19027` `19201` `19339` `19459` + +如果当前 WMPF 版本不在上面的列表里,`-x` 会提示你缺少 `configs/wx4/addresses..json`。 + +--- + | Mac x64微信版本 | 是否为最新版 | x | ---------------- | ------------ | ------------ @@ -60,6 +77,14 @@ ## 如何查看当前运行版本? ### windows + +微信 3.x 可以看关于页或小程序目录版本。 + +微信 4.x 可以在任务管理器里找到 `WeChatAppEx.exe`,右键“打开文件所在的位置”,查看路径里 `RadiumWMPF` 和 `extracted` 之间的数字,例如: + +```text +...\RadiumWMPF\19201\extracted\... +``` ![image](./docs/images/version0.jpg) @@ -76,24 +101,44 @@ ps aux | grep 'WeChatAppEx' | grep -v 'grep' | grep "wmpf-mojo-handle" ### 开启小程序F12 -> ~~只支持windows版本微信~~,运行前先启动微信运行前先启动微信(建议小号,别被封了。。。) +> 现在同时支持微信 3.x 和微信 4.x,但两者的调试方式不同。运行前先启动微信(建议小号,自担风险)。 1. 安装python3版本 -2. 下载WeChatOpenDevTools-Python或直接下载编译好的exe +2. 如果要调试微信 4.x,请额外安装 Node.js(建议 20+) +3. 下载WeChatOpenDevTools-Python或直接下载编译好的exe [WeChatOpenDevTools_64.exe](https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python/releases/) 安装依赖 ``` pip3 install -r requirements.txt +npm install ``` +> 如果你只调试微信 3.x,可以跳过 `npm install`。 + 运行✅ ``` python main.py -x ``` +微信 3.x: + +- 仍然沿用原来的注入逻辑,直接恢复小程序里的调试能力。 + +微信 4.x: + +- 工具会自动识别 WMPF 运行时并切换到 Remote Debug 模式。 +- 启动后会输出一个 `devtools://devtools/bundled/inspector.html?ws=127.0.0.1:` 链接。 +- 先启动要调试的小程序,等终端出现“微信4小程序调试客户端已连接”。 +- 再用 Chrome / Edge 之类的 Chromium 浏览器打开这个链接。 +- 可以通过下面两个参数改端口: + +```bash +python main.py -x --debug-port 9421 --cdp-port 62000 +``` + ![image](./docs/images/run.jpg) ![image](./docs/images/MG38.jpg) @@ -105,6 +150,8 @@ python main.py -x python main.py -c ``` +> 这条路径目前仍然是旧版实现,微信 4.x 暂未适配。 + ![1709657739316](./docs/images/demo1.png) ![1709657739316](./docs/images/demo2.png) @@ -125,6 +172,20 @@ python main.py -c 2. **如果微信版本相同小程序版本不同,就删除小程序版本目录并重启微信,直到刷出支持的小程序版本目录** 3. 最后回到上级目录,设置文件夹权限为只读,这样就能一直保持小程序版本一致 [image](https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python/assets/132129852/c2b793c3-6d81-424e-a167-3b1e584cef6f) +* 微信4启动后没有出现内置 F12 + + - 这是正常现象。微信 4 走的是浏览器 DevTools 远程调试,不是旧版的小程序内置 F12。 + - 请看终端输出里的 `devtools://...` 链接,用 Chromium 浏览器打开。 +* 微信4小程序一闪而过 / 调试连接立刻断开 + + - 先确认顺序:先开小程序,等终端出现“微信4小程序调试客户端已连接”,再打开浏览器 DevTools。 + - 看终端里的 `[frida] [hook] scene: ...` 和 `hook scene condition -> 1101`。 + - 如果没有看到 `scene` 日志,说明这次流程没有命中小程序加载 hook。 + - 如果看到了 `scene`,但没有 `1101`,说明当前小程序入口 scene 不在已适配列表里。 +* 微信4提示缺少配置 + + - 终端会打印当前 WMPF 版本号。 + - 对应补充 `configs/wx4/addresses..json` 后再重试。 * 怎么回退版本? - https://weixin.qq.com/cgi-bin/readtemplate?lang=zh_CN&t=weixin_faq_list&head=true diff --git a/configs/wx4/addresses.11581.json b/configs/wx4/addresses.11581.json new file mode 100644 index 0000000..9ab82ca --- /dev/null +++ b/configs/wx4/addresses.11581.json @@ -0,0 +1,6 @@ +{ + "Version": 11581, + "LoadStartHookOffset": "0x28E9190", + "CDPFilterHookOffset": "0x38C4350", + "SceneOffsets": [1208, 1160, 488] +} diff --git a/configs/wx4/addresses.11633.json b/configs/wx4/addresses.11633.json new file mode 100644 index 0000000..baab01b --- /dev/null +++ b/configs/wx4/addresses.11633.json @@ -0,0 +1,6 @@ +{ + "Version": 11633, + "LoadStartHookOffset": "0x28F22A0", + "CDPFilterHookOffset": "0x38D41E0", + "SceneOffsets": [1208, 1160, 488] +} diff --git a/configs/wx4/addresses.13331.json b/configs/wx4/addresses.13331.json new file mode 100644 index 0000000..55b04dd --- /dev/null +++ b/configs/wx4/addresses.13331.json @@ -0,0 +1,6 @@ +{ + "Version": 13331, + "LoadStartHookOffset": "0x0FFC200", + "CDPFilterHookOffset": "0x2420100", + "SceneOffsets": [1272, 1224, 488] +} diff --git a/configs/wx4/addresses.13341.json b/configs/wx4/addresses.13341.json new file mode 100644 index 0000000..d93c5e1 --- /dev/null +++ b/configs/wx4/addresses.13341.json @@ -0,0 +1,6 @@ +{ + "Version": 13341, + "LoadStartHookOffset": "0x10009E0", + "CDPFilterHookOffset": "0x242E8E0", + "SceneOffsets": [1272, 1224, 488] +} diff --git a/configs/wx4/addresses.13487.json b/configs/wx4/addresses.13487.json new file mode 100644 index 0000000..5243107 --- /dev/null +++ b/configs/wx4/addresses.13487.json @@ -0,0 +1,6 @@ +{ + "Version": 13487, + "LoadStartHookOffset": "0x0FFB600", + "CDPFilterHookOffset": "0x241FEB0", + "SceneOffsets": [1272, 1224, 488] +} diff --git a/configs/wx4/addresses.13639.json b/configs/wx4/addresses.13639.json new file mode 100644 index 0000000..4c627d0 --- /dev/null +++ b/configs/wx4/addresses.13639.json @@ -0,0 +1,6 @@ +{ + "Version": 13639, + "LoadStartHookOffset": "0x1000990", + "CDPFilterHookOffset": "0x2424DE0", + "SceneOffsets": [1272, 1224, 488] +} diff --git a/configs/wx4/addresses.13655.json b/configs/wx4/addresses.13655.json new file mode 100644 index 0000000..a0b0ffe --- /dev/null +++ b/configs/wx4/addresses.13655.json @@ -0,0 +1,6 @@ +{ + "Version": 13655, + "LoadStartHookOffset": "0x100F4B0", + "CDPFilterHookOffset": "0x244A9E0", + "SceneOffsets": [1280, 1232, 488] +} diff --git a/configs/wx4/addresses.13871.json b/configs/wx4/addresses.13871.json new file mode 100644 index 0000000..441320e --- /dev/null +++ b/configs/wx4/addresses.13871.json @@ -0,0 +1,6 @@ +{ + "Version": 13871, + "LoadStartHookOffset": "0x101F160", + "CDPFilterHookOffset": "0x246FC40", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.13909.json b/configs/wx4/addresses.13909.json new file mode 100644 index 0000000..e5e6650 --- /dev/null +++ b/configs/wx4/addresses.13909.json @@ -0,0 +1,6 @@ +{ + "Version": 13909, + "LoadStartHookOffset": "0x101F0E0", + "CDPFilterHookOffset": "0x246FDC0", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.14161.json b/configs/wx4/addresses.14161.json new file mode 100644 index 0000000..8a21a02 --- /dev/null +++ b/configs/wx4/addresses.14161.json @@ -0,0 +1,6 @@ +{ + "Version": 14161, + "LoadStartHookOffset": "0x10246C0", + "CDPFilterHookOffset": "0x24839B0", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.14199.json b/configs/wx4/addresses.14199.json new file mode 100644 index 0000000..3420708 --- /dev/null +++ b/configs/wx4/addresses.14199.json @@ -0,0 +1,6 @@ +{ + "Version": 14199, + "LoadStartHookOffset": "0x10246F0", + "CDPFilterHookOffset": "0x24839E0", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.14315.json b/configs/wx4/addresses.14315.json new file mode 100644 index 0000000..f610e8f --- /dev/null +++ b/configs/wx4/addresses.14315.json @@ -0,0 +1,6 @@ +{ + "Version": 14315, + "LoadStartHookOffset": "0x10004C0", + "CDPFilterHookOffset": "0x2424B50", + "SceneOffsets": [1272, 1224, 488] +} diff --git a/configs/wx4/addresses.16133.json b/configs/wx4/addresses.16133.json new file mode 100644 index 0000000..0118bd5 --- /dev/null +++ b/configs/wx4/addresses.16133.json @@ -0,0 +1,6 @@ +{ + "Version": 16133, + "LoadStartHookOffset": "0x470FAD0", + "CDPFilterHookOffset": "0x90FC7E0", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.16203.json b/configs/wx4/addresses.16203.json new file mode 100644 index 0000000..18e41ae --- /dev/null +++ b/configs/wx4/addresses.16203.json @@ -0,0 +1,6 @@ +{ + "Version": 16203, + "LoadStartHookOffset": "0x4710890", + "CDPFilterHookOffset": "0x90FD640", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.16389.json b/configs/wx4/addresses.16389.json new file mode 100644 index 0000000..eb6d05b --- /dev/null +++ b/configs/wx4/addresses.16389.json @@ -0,0 +1,6 @@ +{ + "Version": 16389, + "LoadStartHookOffset": "0x24E4830", + "CDPFilterHookOffset": "0x2E2A880", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.16467.json b/configs/wx4/addresses.16467.json new file mode 100644 index 0000000..2d327ae --- /dev/null +++ b/configs/wx4/addresses.16467.json @@ -0,0 +1,6 @@ +{ + "Version": 16467, + "LoadStartHookOffset": "0x24E4FD0", + "CDPFilterHookOffset": "0x2E2CC90", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.16771.json b/configs/wx4/addresses.16771.json new file mode 100644 index 0000000..c453dee --- /dev/null +++ b/configs/wx4/addresses.16771.json @@ -0,0 +1,6 @@ +{ + "Version": 16771, + "LoadStartHookOffset": "0x24E9130", + "CDPFilterHookOffset": "0x2E3C470", + "SceneOffsets": [1360, 1312, 488] +} diff --git a/configs/wx4/addresses.16815.json b/configs/wx4/addresses.16815.json new file mode 100644 index 0000000..d34fa2b --- /dev/null +++ b/configs/wx4/addresses.16815.json @@ -0,0 +1,6 @@ +{ + "Version": 16815, + "LoadStartHookOffset": "0x2509690", + "CDPFilterHookOffset": "0x2E768D0", + "SceneOffsets": [1416, 1360, 488] +} diff --git a/configs/wx4/addresses.16965.json b/configs/wx4/addresses.16965.json new file mode 100644 index 0000000..2e23abc --- /dev/null +++ b/configs/wx4/addresses.16965.json @@ -0,0 +1,6 @@ +{ + "Version": 16965, + "LoadStartHookOffset": "0x2570220", + "CDPFilterHookOffset": "0x2F844A0", + "SceneOffsets": [1416, 1360, 488] +} diff --git a/configs/wx4/addresses.17037.json b/configs/wx4/addresses.17037.json new file mode 100644 index 0000000..65267ff --- /dev/null +++ b/configs/wx4/addresses.17037.json @@ -0,0 +1,6 @@ +{ + "Version": 17037, + "LoadStartHookOffset": "0x257D0A0", + "CDPFilterHookOffset": "0x2FB2310", + "SceneOffsets": [1408, 1352, 488] +} diff --git a/configs/wx4/addresses.17071.json b/configs/wx4/addresses.17071.json new file mode 100644 index 0000000..45a0c10 --- /dev/null +++ b/configs/wx4/addresses.17071.json @@ -0,0 +1,6 @@ +{ + "Version": 17071, + "LoadStartHookOffset": "0x258F370", + "CDPFilterHookOffset": "0x2FD3080", + "SceneOffsets": [1408, 1352, 488] +} diff --git a/configs/wx4/addresses.17127.json b/configs/wx4/addresses.17127.json new file mode 100644 index 0000000..2a5b4f6 --- /dev/null +++ b/configs/wx4/addresses.17127.json @@ -0,0 +1,6 @@ +{ + "Version": 17127, + "LoadStartHookOffset": "0x2590910", + "CDPFilterHookOffset": "0x2FD4040", + "SceneOffsets": [1408, 1352, 488] +} diff --git a/configs/wx4/addresses.18055.json b/configs/wx4/addresses.18055.json new file mode 100644 index 0000000..f7aa78b --- /dev/null +++ b/configs/wx4/addresses.18055.json @@ -0,0 +1,6 @@ +{ + "Version": 18055, + "LoadStartHookOffset": "0x25A1040", + "CDPFilterHookOffset": "0x30031E0", + "SceneOffsets": [1416, 1352, 488] +} diff --git a/configs/wx4/addresses.18151.json b/configs/wx4/addresses.18151.json new file mode 100644 index 0000000..3e5fdc5 --- /dev/null +++ b/configs/wx4/addresses.18151.json @@ -0,0 +1,6 @@ +{ + "Version": 18151, + "LoadStartHookOffset": "0x25A2E20", + "CDPFilterHookOffset": "0x3013D20", + "SceneOffsets": [1416, 1352, 488] +} diff --git a/configs/wx4/addresses.18787.json b/configs/wx4/addresses.18787.json new file mode 100644 index 0000000..f55b59c --- /dev/null +++ b/configs/wx4/addresses.18787.json @@ -0,0 +1,6 @@ +{ + "Version": 18787, + "LoadStartHookOffset": "0x25B2870", + "CDPFilterHookOffset": "0x3028AD0", + "SceneOffsets": [1408, 1344, 488] +} diff --git a/configs/wx4/addresses.18891.json b/configs/wx4/addresses.18891.json new file mode 100644 index 0000000..c5c3adc --- /dev/null +++ b/configs/wx4/addresses.18891.json @@ -0,0 +1,6 @@ +{ + "Version": 18891, + "LoadStartHookOffset": "0x25B50C0", + "CDPFilterHookOffset": "0x30245E0", + "SceneOffsets": [1408, 1344, 488] +} diff --git a/configs/wx4/addresses.18955.json b/configs/wx4/addresses.18955.json new file mode 100644 index 0000000..99e4ec3 --- /dev/null +++ b/configs/wx4/addresses.18955.json @@ -0,0 +1,6 @@ +{ + "Version": 18955, + "LoadStartHookOffset": "0x25B52C0", + "CDPFilterHookOffset": "0x30248B0", + "SceneOffsets": [1408, 1344, 488] +} diff --git a/configs/wx4/addresses.19027.json b/configs/wx4/addresses.19027.json new file mode 100644 index 0000000..b7ff6f1 --- /dev/null +++ b/configs/wx4/addresses.19027.json @@ -0,0 +1,6 @@ +{ + "Version": 19027, + "LoadStartHookOffset": "0x25B52D0", + "CDPFilterHookOffset": "0x3024AD0", + "SceneOffsets": [1408, 1344, 488] +} diff --git a/configs/wx4/addresses.19201.json b/configs/wx4/addresses.19201.json new file mode 100644 index 0000000..3bfe1fe --- /dev/null +++ b/configs/wx4/addresses.19201.json @@ -0,0 +1,6 @@ +{ + "Version": 19201, + "LoadStartHookOffset": "0x25B5DD0", + "CDPFilterHookOffset": "0x301B3C0", + "SceneOffsets": [1376, 1312, 456] +} diff --git a/configs/wx4/addresses.19339.json b/configs/wx4/addresses.19339.json new file mode 100644 index 0000000..a0c97b7 --- /dev/null +++ b/configs/wx4/addresses.19339.json @@ -0,0 +1,6 @@ +{ + "Version": 19339, + "LoadStartHookOffset": "0x25B5DD0", + "CDPFilterHookOffset": "0x301BA00", + "SceneOffsets": [1376, 1312, 456] +} diff --git a/configs/wx4/addresses.19459.json b/configs/wx4/addresses.19459.json new file mode 100644 index 0000000..fd8ed4d --- /dev/null +++ b/configs/wx4/addresses.19459.json @@ -0,0 +1,6 @@ +{ + "Version": 19459, + "LoadStartHookOffset": "0x25BB580", + "CDPFilterHookOffset": "0x3022F20", + "SceneOffsets": [1376, 1312, 456] +} diff --git a/main.py b/main.py index c58608d..3adfe25 100644 --- a/main.py +++ b/main.py @@ -1,39 +1,54 @@ -from argparse import RawTextHelpFormatter -from utils.commons import Commons -from utils.banner import generate_banner -from utils.colors import Color -import argparse +from argparse import RawTextHelpFormatter +from utils.commons import Commons +from utils.banner import generate_banner +from utils.colors import Color +import argparse def print_colored_message(message, color): print(color + message + Color.END) -def main(): - HELPALL = """ - 请选择要执行的方法: - [+] python main.py -h 查看帮助 - [+] python main.py -x 开启小程序F12 - [+] python main.py -c 开启内置浏览器F12 - [+] python main.py -all 开启内置浏览器F12与小程序F12 - - """ - parser = argparse.ArgumentParser(description=HELPALL, formatter_class=RawTextHelpFormatter) - parser.add_argument('-x', action='store_true', help='开启小程序F12') - parser.add_argument('-c', action='store_true', help='开启内置浏览器F12') - parser.add_argument('-all', action='store_true', help='开启内置浏览器F12与小程序F12') - args = parser.parse_args() - - if args.x: - commons.load_wechatEx_configs() - elif args.c: - commons.load_wechatEXE_configs() - elif args.all: - commons.load_wechatEXE_and_wechatEx() - else: - - print_colored_message(HELPALL, Color.RED) +def main(): + HELPALL = """ + 请选择要执行的方法: + [+] python main.py -h 查看帮助 + [+] python main.py -x 开启小程序F12 + [+] python main.py -c 开启内置浏览器F12 + [+] python main.py -all 开启内置浏览器F12与小程序F12 + [+] python main.py -x --cdp-port 62000 指定微信4 DevTools代理端口 + [+] python main.py -x --debug-port 9421 指定微信4远程调试端口 + + """ + parser = argparse.ArgumentParser(description=HELPALL, formatter_class=RawTextHelpFormatter) + parser.add_argument('-x', action='store_true', help='开启小程序F12') + parser.add_argument('-c', action='store_true', help='开启内置浏览器F12') + parser.add_argument('-all', action='store_true', help='开启内置浏览器F12与小程序F12') + parser.add_argument('--debug-port', type=int, default=9421, help='微信4远程调试端口,默认 9421') + parser.add_argument('--cdp-port', type=int, default=62000, help='微信4 DevTools代理端口,默认 62000') + parser.add_argument('--wx4-no-scene-patch', action='store_true', help='微信4:禁用 scene 改写,仅保留其他 patch 便于排查闪退') + parser.add_argument('--wx4-no-cdp-filter', action='store_true', help='微信4:禁用 CDP filter patch 便于排查闪退') + parser.add_argument('--wx4-no-force-debug-flag', action='store_true', help='微信4:禁用 OnLoadStart 中 dl=1 的强制写入,便于排查闪退') + parser.add_argument('--wx4-scene-target', type=int, default=1101, help='微信4:scene 改写目标,默认 1101') + args = parser.parse_args() + + wx4_options = { + "patch_scene": not args.wx4_no_scene_patch, + "patch_cdp_filter": not args.wx4_no_cdp_filter, + "force_debug_flag": not args.wx4_no_force_debug_flag, + "scene_target": args.wx4_scene_target, + } + + if args.x: + commons.load_wechatEx_configs(debug_port=args.debug_port, cdp_port=args.cdp_port, wx4_options=wx4_options) + elif args.c: + commons.load_wechatEXE_configs() + elif args.all: + commons.load_wechatEXE_and_wechatEx(debug_port=args.debug_port, cdp_port=args.cdp_port, wx4_options=wx4_options) + else: + + print_colored_message(HELPALL, Color.RED) if __name__ == "__main__": generate_banner() diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..187499b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,130 @@ +{ + "name": "wechatopendevtools-python", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wechatopendevtools-python", + "dependencies": { + "protobufjs": "^7.4.0", + "ws": "^8.18.3" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@types/node": { + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "dependencies": { + "undici-types": "~7.19.0" + } + }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" + }, + "node_modules/protobufjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.5.tgz", + "integrity": "sha512-3wY1AxV+VBNW8Yypfd1yQY9pXnqTAN+KwQxL8iYm3/BjKYMNg4i0owhEe26PWDOMaIrzeeF98Lqd5NGz4omiIg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==" + }, + "node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c1b5be5 --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "name": "wechatopendevtools-python", + "private": true, + "description": "Node helper dependencies for WeChat 4 remote debug bridging", + "dependencies": { + "protobufjs": "^7.4.0", + "ws": "^8.18.3" + } +} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..01d87bd --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,12 @@ +[project] +name = "wechatopendevtools-python" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [ + "frida==16.6.6", + "psutil==5.9.7", + "pyfiglet==1.0.2", + "websockets==15.0.1", +] diff --git a/requirements.txt b/requirements.txt index e2af1af..07c2709 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ -frida==16.1.11 +frida==16.6.6 psutil==5.9.7 pyfiglet==1.0.2 +websockets==15.0.1 diff --git a/scripts/wechat4_codec_bridge.js b/scripts/wechat4_codec_bridge.js new file mode 100644 index 0000000..4ded12b --- /dev/null +++ b/scripts/wechat4_codec_bridge.js @@ -0,0 +1,256 @@ +"use strict"; + +const readline = require("node:readline"); + +let codex; +let messageProto; +let constants; + +try { + codex = require("./wechat4_third_party/RemoteDebugCodex.js"); + messageProto = require("./wechat4_third_party/WARemoteDebugProtobuf.js"); + constants = require("./wechat4_third_party/RemoteDebugConstants.js"); +} catch (error) { + console.error( + "failed to load WeChat 4 codec dependencies. Run `npm install` first. " + + (error && error.stack ? error.stack : String(error)), + ); + process.exit(1); +} + +const rl = readline.createInterface({ + input: process.stdin, + crlfDelay: Infinity, +}); + +let messageCounter = 0; +let notifyCounter = 0; + +function reply(payload) { + process.stdout.write(`${JSON.stringify(payload)}\n`); +} + +function encodePayload(payload) { + const rawPayload = { + jscontext_id: "", + op_id: Math.round(100 * Math.random()), + payload: String(payload ?? ""), + }; + const wrappedData = codex.wrapDebugMessageData(rawPayload, "chromeDevtools", 0); + const outData = { + seq: ++messageCounter, + category: "chromeDevtools", + data: wrappedData.buffer, + compressAlgo: 0, + originalSize: wrappedData.originalSize, + }; + const encoded = messageProto.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode( + outData, + ).finish(); + return Buffer.from(encoded).toString("base64"); +} + +function hexPreview(buffer, length = 64) { + return Buffer.from(buffer).subarray(0, length).toString("hex"); +} + +function normalizeDebugMessage(debugMessage) { + if (!debugMessage) { + return null; + } + return { + seq: typeof debugMessage.seq === "number" ? debugMessage.seq : 0, + delay: typeof debugMessage.delay === "number" ? debugMessage.delay : 0, + category: debugMessage.category ?? null, + compress_algo: + typeof debugMessage.compress_algo === "number" ? debugMessage.compress_algo : 0, + payload: + debugMessage.data && typeof debugMessage.data.payload === "string" + ? debugMessage.data.payload + : null, + data: debugMessage.data ?? null, + }; +} + +function decodeRawDebugMessage(rawMessage) { + const decodedData = + messageProto.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(rawMessage); + const unwrappedData = codex.unwrapDebugMessageData(decodedData); + if (!unwrappedData || !unwrappedData.category) { + return null; + } + + return { + frame_type: "debug_message", + category: unwrappedData.category, + payload: + unwrappedData.data && typeof unwrappedData.data.payload === "string" + ? unwrappedData.data.payload + : null, + debug_messages: [ + normalizeDebugMessage({ + seq: decodedData.seq, + delay: decodedData.delay, + category: unwrappedData.category, + compress_algo: decodedData.compressAlgo, + data: unwrappedData.data, + }), + ], + }; +} + +function decodeClientFrame(rawMessage) { + const decoded = codex.unwrapClientProtoToDataFormat(rawMessage); + if ( + !decoded || + typeof decoded.cmd !== "number" || + decoded.cmd === constants.ClientRequestCmd.Unknown + ) { + return null; + } + + let debugMessages = []; + if (Array.isArray(decoded.data && decoded.data.debug_message)) { + debugMessages = decoded.data.debug_message.map(normalizeDebugMessage).filter(Boolean); + } + + return { + frame_type: "client_request", + cmd: decoded.cmd, + comment: decoded._comment ?? null, + uuid: decoded.uuid ?? "", + data: decoded.data ?? {}, + debug_messages: debugMessages, + }; +} + +function decodePayloadAuto(rawMessageBase64) { + const rawMessage = Buffer.from(String(rawMessageBase64 ?? ""), "base64"); + const errors = []; + + try { + const clientFrame = decodeClientFrame(rawMessage); + if (clientFrame) { + return clientFrame; + } + } catch (error) { + errors.push(`client_frame: ${error && error.message ? error.message : String(error)}`); + } + + try { + const debugFrame = decodeRawDebugMessage(rawMessage); + if (debugFrame) { + return debugFrame; + } + } catch (error) { + errors.push(`debug_frame: ${error && error.message ? error.message : String(error)}`); + } + + return { + frame_type: "unknown", + errors, + preview_hex: hexPreview(rawMessage), + byte_length: rawMessage.byteLength, + }; +} + +function encodeClientResponse(responseType, uuid, payload) { + const encoded = codex.wrapClientResponseDataFormatToProto( + payload, + responseType, + uuid ?? "", + ); + return Buffer.from(encoded).toString("base64"); +} + +function encodeClientNotify(payload, uuid) { + const debugMessage = { + seq: ++notifyCounter, + delay: 0, + category: constants.DebugMessageCategory.ChromeDevtools, + compress_algo: 0, + data: { + jscontext_id: "", + op_id: Math.round(100 * Math.random()), + payload: String(payload ?? ""), + }, + }; + const encoded = codex.wrapClientResponseDataFormatToProto( + { + debug_message: [debugMessage], + }, + constants.ClientResponseType.MessageNotifyParallelly, + uuid ?? "", + ); + return Buffer.from(encoded).toString("base64"); +} + +rl.on("line", (line) => { + let request; + try { + request = JSON.parse(line); + } catch (error) { + reply({ + id: null, + ok: false, + error: error && error.stack ? error.stack : String(error), + }); + return; + } + + try { + if (request.type === "ping") { + reply({ id: request.id, ok: true, data: { version: process.version } }); + return; + } + + if (request.type === "encode") { + reply({ + id: request.id, + ok: true, + data: encodePayload(request.payload), + }); + return; + } + + if (request.type === "decode") { + const decoded = decodePayloadAuto(request.data); + reply({ + id: request.id, + ok: true, + ...decoded, + }); + return; + } + + if (request.type === "encode_client_response") { + reply({ + id: request.id, + ok: true, + data: encodeClientResponse(request.response_type, request.uuid, request.payload || {}), + }); + return; + } + + if (request.type === "encode_client_notify") { + reply({ + id: request.id, + ok: true, + data: encodeClientNotify(request.payload, request.uuid), + }); + return; + } + + reply({ + id: request.id, + ok: false, + error: `unknown request type: ${request.type}`, + }); + } catch (error) { + reply({ + id: request.id, + ok: false, + error: error && error.stack ? error.stack : String(error), + }); + } +}); diff --git a/scripts/wechat4_hook.js b/scripts/wechat4_hook.js new file mode 100644 index 0000000..fd59fed --- /dev/null +++ b/scripts/wechat4_hook.js @@ -0,0 +1,297 @@ +// Adapted from the public Frida hook workflow in evi0s/WMPFDebugger. +// This repository keeps the high-level hook idea but layers extra runtime +// toggles and diagnostics for Python-driven orchestration. + +const getMainModule = (version) => { + if (version >= 13331) { + return Process.findModuleByName("flue.dll"); + } + return Process.findModuleByName("WeChatAppEx.exe"); +}; + +const parseRuntimeOptions = () => { + if (typeof runtimeOptions === "object" && runtimeOptions !== null) { + return { + patchScene: runtimeOptions.patchScene !== false, + patchCDPFilter: runtimeOptions.patchCDPFilter !== false, + forceDebugFlag: runtimeOptions.forceDebugFlag !== false, + sceneTarget: + typeof runtimeOptions.sceneTarget === "number" + ? runtimeOptions.sceneTarget + : 1101, + }; + } + return { + patchScene: true, + patchCDPFilter: true, + forceDebugFlag: true, + sceneTarget: 1101, + }; +}; + +const patchCDPFilter = (base, config, runtime) => { + if (!runtime.patchCDPFilter) { + send("[patch] skip CDP filter patch by runtime option"); + return; + } + // xref: SendToClientFilter OR devtools_message_filter_applet_webview.cc + const offset = config.CDPFilterHookOffset; + Interceptor.attach(base.add(offset), { + onEnter(args) { + send( + `[patch] CDP filter on enter, original value of input: ${args[0].readPointer()}`, + ); + this.inputValue = args[0]; + }, + onLeave(retval) { + const inputValue = this.inputValue.readPointer(); + if (inputValue.isNull() || inputValue.add(8).isNull()) { + // there's a chance the value could be null + // return here to avoid crash + return; + } + + send( + `[patch] CDP filter on leave, patch input, now value: ${inputValue}; ` + + `*(input + 8) = ${inputValue.add(8).readU32()}`, + ); + if (inputValue.add(8).readU32() == 6) { + inputValue.add(8).writeU32(0x0); + } + }, + }); +}; + +const safeReadPointer = (ptr, label) => { + try { + return ptr.readPointer(); + } catch (error) { + send(`[hook] ${label} readPointer failed at ${ptr}: ${error}`); + return null; + } +}; + +const safeReadInt = (ptr, label) => { + try { + return ptr.readInt(); + } catch (error) { + send(`[hook] ${label} readInt failed at ${ptr}: ${error}`); + return null; + } +}; + +const dedupeOffsetCandidates = (offsetSets) => { + const seen = {}; + const unique = []; + for (let i = 0; i < offsetSets.length; i++) { + const key = JSON.stringify(offsetSets[i]); + if (seen[key]) { + continue; + } + seen[key] = true; + unique.push(offsetSets[i]); + } + return unique; +}; + +const buildSceneOffsetCandidates = (sceneOffsets) => { + const [a, b, c] = sceneOffsets; + return dedupeOffsetCandidates([ + sceneOffsets, + [a, b, 456], + [a, b, 488], + [1376, 1312, 456], + [1376, 1312, 488], + [1408, 1344, 488], + [1408, 1352, 488], + [1416, 1360, 488], + [1360, 1312, 488], + [1272, 1224, 488], + [1208, 1160, 488], + ]); +}; + +const resolveSceneInfo = (a1, sceneOffsets) => { + const indexContainerPtr = safeReadPointer(a1.add(56), "indexContainer + 56"); + if (indexContainerPtr === null || indexContainerPtr.isNull()) { + send("[hook] indexContainer + 56 pointer is null"); + return null; + } + + const candidates = buildSceneOffsetCandidates(sceneOffsets); + for (let i = 0; i < candidates.length; i++) { + const offsets = candidates[i]; + try { + const configSlot = indexContainerPtr.add(offsets[0]); + const miniappConfigPtr = safeReadPointer( + configSlot, + `miniappConfigPtr offsets=${offsets}`, + ); + if (miniappConfigPtr === null || miniappConfigPtr.isNull()) { + continue; + } + + const configChildPtr = safeReadPointer( + miniappConfigPtr.add(8), + `miniappConfigPtr+8 offsets=${offsets}`, + ); + if (configChildPtr === null || configChildPtr.isNull()) { + continue; + } + + const sceneParentPtr = safeReadPointer( + configChildPtr.add(offsets[1]), + `sceneParentPtr offsets=${offsets}`, + ); + if (sceneParentPtr === null || sceneParentPtr.isNull()) { + continue; + } + + const sceneBasePtr = safeReadPointer( + sceneParentPtr.add(16), + `sceneBasePtr offsets=${offsets}`, + ); + if (sceneBasePtr === null || sceneBasePtr.isNull()) { + continue; + } + + const miniappScenePtr = sceneBasePtr.add(offsets[2]); + const sceneValue = safeReadInt( + miniappScenePtr, + `miniappScenePtr offsets=${offsets}`, + ); + if (sceneValue === null) { + continue; + } + + if (sceneValue >= 0 && sceneValue <= 10000) { + return { + offsets, + scenePtr: miniappScenePtr, + sceneValue, + }; + } + } catch (error) { + send(`[hook] resolveSceneInfo failed offsets=${offsets}: ${error}`); + } + } + + return null; +}; + +const shouldPatchScene = (sceneValue) => { + if (sceneValue === 1000) { + return false; + } + + // 1000: from issue #83 <-- will crash the process + // 1007: from issue #80 + // 1008: from issue #53 + // 1027: from issue #78 + // 1035: from issue #78 + // 1053: from issue #25 + // 1074: from issue #32 + // 1145: from search + // 1178: from phone (issue #117) + // 1256: from recent + // 1260: from frequently used + // 1302: from services + // 1308: minigame? + const sceneNumberArray = [ + 1005, 1007, 1008, 1027, 1035, 1053, 1074, 1145, 1178, 1256, 1260, 1302, + 1308, + ]; + if (sceneNumberArray.includes(sceneValue)) { + return true; + } + + // Fallback heuristic for newer scenes. Keep 1000 excluded because it is known + // to crash the process. This broadens compatibility for newer launches. + if (sceneValue >= 1001 && sceneValue < 2000) { + send(`[hook] scene ${sceneValue} matched heuristic patch range`); + return true; + } + + return false; +}; + +const hookOnLoadScene = (a1, sceneOffsets, runtime) => { + const sceneInfo = resolveSceneInfo(a1, sceneOffsets); + if (sceneInfo === null) { + send(`[hook] failed to resolve scene using offsets ${sceneOffsets}`); + return; + } + + send( + `[hook] scene: ${sceneInfo.sceneValue}, offsets=${sceneInfo.offsets}, scenePtr=${sceneInfo.scenePtr}`, + ); + if (!runtime.patchScene) { + send("[hook] skip scene patch by runtime option"); + return; + } + if (!shouldPatchScene(sceneInfo.sceneValue)) { + return; + } + send(`[hook] hook scene condition -> ${runtime.sceneTarget}`); + try { + sceneInfo.scenePtr.writeInt(runtime.sceneTarget); + } catch (error) { + send(`[hook] write scene ${runtime.sceneTarget} failed: ${error}`); + } + + // TODO: customize debugging endpoint + // const websocketServerStringPtr = passArgs.add(8).readPointer().add(520); + // VERBOSE && console.log("[hook] hook websocket server, original: ", websocketServerStringPtr.readUtf8String()); + // websocketServerStringPtr.writeUtf8String("ws://127.0.0.1:8189/"); +}; + +const patchOnLoadStart = (base, config, runtime) => { + // xref: AppletIndexContainer::OnLoadStart + Interceptor.attach(base.add(config.LoadStartHookOffset), { + onEnter(args) { + send( + `[inteceptor] AppletIndexContainer::OnLoadStart onEnter, ` + + `indexContainer.this: ${this.context.rcx}, dl(before)=${this.context.rdx & 0xff}`, + ); + // write dl to 0x1 + if (runtime.forceDebugFlag && (this.context.rdx & 0xff) !== 1) { + this.context.rdx = (this.context.rdx & ~0xff) | 0x1; + send(`[patch] force dl flag -> 1, dl(after)=${this.context.rdx & 0xff}`); + } else if (!runtime.forceDebugFlag) { + send("[patch] skip force dl flag by runtime option"); + } + // handle onLoad scene + hookOnLoadScene(this.context.rcx, config.SceneOffsets, runtime); + }, + onLeave(retval) { + // do nothing + }, + }); +}; + +const parseConfig = () => { + const rawConfig = `@@CONFIG@@`; + if (rawConfig.includes("@@")) { + // test addresses + return { + Version: 18955, + LoadStartHookOffset: "0x25B52C0", + CDPFilterHookOffset: "0x30248B0", + SceneOffsets: [1408, 1344, 488], + }; + } + return JSON.parse(rawConfig); +}; + +const main = () => { + const config = parseConfig(); + const runtime = parseRuntimeOptions(); + const mainModule = getMainModule(config.Version); + send( + `[patch] runtime options patchScene=${runtime.patchScene} patchCDPFilter=${runtime.patchCDPFilter} forceDebugFlag=${runtime.forceDebugFlag} sceneTarget=${runtime.sceneTarget}`, + ); + patchOnLoadStart(mainModule.base, config, runtime); + patchCDPFilter(mainModule.base, config, runtime); +}; + +main(); diff --git a/scripts/wechat4_third_party/NOTICE.md b/scripts/wechat4_third_party/NOTICE.md new file mode 100644 index 0000000..4f09b1d --- /dev/null +++ b/scripts/wechat4_third_party/NOTICE.md @@ -0,0 +1,11 @@ +These files are vendored for WeChat 4 remote-debug compatibility. + +Sources: +- `RemoteDebugCodex.js` +- `RemoteDebugConstants.js` +- `RemoteDebugUtils.js` +- `WARemoteDebugProtobuf.js` + +They were imported from `evi0s/WMPFDebugger` and, as noted by that project, +the code under `src/third-party` is extracted from `wechatdevtools` and remains +copyrighted by Tencent Holdings Ltd. diff --git a/scripts/wechat4_third_party/RemoteDebugCodex.js b/scripts/wechat4_third_party/RemoteDebugCodex.js new file mode 100644 index 0000000..476edda --- /dev/null +++ b/scripts/wechat4_third_party/RemoteDebugCodex.js @@ -0,0 +1,871 @@ +! function(require, directRequire) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: !0 + }), exports.model = exports.wrapClientResponseDataFormatToProto = exports.unwrapClientProtoToDataFormat = exports.bufferToUint8Array = exports.uint8ArrayToBuffer = exports.unwrapProtoToDataFormat = exports.unwrapDebugMessageData = exports.wrapOutgoingToProto = exports.wrapDebugMessageData = exports.clientRequestCmdForType = exports.requestCmdForType = void 0; + const e = require("zlib"), + o = require('./WARemoteDebugProtobuf.js'), + t = require('./RemoteDebugConstants.js'), + s = require('./RemoteDebugUtils.js'), + a = {e: (msg) => {console.error(msg)}}; + let n; + + function r(e) { + return t.ResponseType[e] || t.ClientRequestType[e] || "" + } + + function i(e) { + switch (e) { + case t.RequestType.Login: + return t.RequestCmd.Login; + case t.RequestType.EventNotifyBegin: + return t.RequestCmd.EventNotifyBegin; + case t.RequestType.EventNotifyBlock: + return t.RequestCmd.EventNotifyBlock; + case t.RequestType.EventNotifyEnd: + return t.RequestCmd.EventNotifyEnd; + case t.RequestType.Heartbeat: + return t.RequestCmd.Heartbeat; + case t.RequestType.JoinRoom: + return t.RequestCmd.JoinRoom; + case t.RequestType.MessageNotifyParallelly: + return t.RequestCmd.MessageNotifyParallelly; + case t.RequestType.MessageNotify: + return t.RequestCmd.MessageNotify; + case t.RequestType.QuitRoom: + return t.RequestCmd.QuitRoom; + case t.RequestType.SendDebugMessage: + return t.RequestCmd.SendDebugMessage; + case t.RequestType.SyncMessage: + return t.RequestCmd.SyncMessage; + case t.RequestType.SendDebugMessageParallelly: + return t.RequestCmd.SendDebugMessageParallelly; + case t.ResponseType.MessageNotifyParallelly: + return t.RequestCmd.MessageNotifyParallelly; + default: + return t.RequestCmd.Unknown + } + } + + function m(e) { + switch (e) { + case t.ClientResponseType.Login: + return t.ClientRequestCmd.Login; + case t.ClientResponseType.EventNotifyBegin: + return t.ClientRequestCmd.EventNotifyBegin; + case t.ClientResponseType.EventNotifyBlock: + return t.ClientRequestCmd.EventNotifyBlock; + case t.ClientResponseType.EventNotifyEnd: + return t.ClientRequestCmd.EventNotifyEnd; + case t.ClientResponseType.Heartbeat: + return t.ClientRequestCmd.Heartbeat; + case t.ClientResponseType.JoinRoom: + return t.ClientRequestCmd.JoinRoom; + case t.ClientResponseType.MessageNotifyParallelly: + return t.ClientRequestCmd.MessageNotifyParallelly; + case t.ClientResponseType.MessageNotify: + return t.ClientRequestCmd.MessageNotify; + case t.ClientResponseType.QuitRoom: + return t.ClientRequestCmd.QuitRoom; + case t.ClientResponseType.SendDebugMessage: + return t.ClientRequestCmd.SendDebugMessage; + case t.ClientResponseType.SyncMessage: + return t.ClientRequestCmd.SyncMessage; + case t.ClientResponseType.SendDebugMessageParallelly: + return t.ClientRequestCmd.SendDebugMessageParallelly; + default: + return t.ClientRequestCmd.Unknown + } + } + + function b(r, i, m = 0) { + let b = null; + switch (i) { + case t.DebugMessageCategory.CallInterface: { + const e = r, + t = { + objName: e.name, + methodName: e.method, + methodArgList: e.args.map(e => String(e)), + callId: e.call_id + }, + n = o.mmbizwxadevremote.WARemoteDebug_CallInterface.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid callInterfaceObject obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_CallInterface.encode(t).finish(); + break + } + case t.DebugMessageCategory.EvaluateJavascriptResult: { + const e = r, + t = { + ret: e.ret, + evaluateId: e.evaluate_id + }, + n = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid EvaluateJavascriptResult obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.encode(t).finish(); + break + } + case t.DebugMessageCategory.Ping: { + const e = r, + t = { + pingId: e.ping_id, + payload: e.payload + }, + n = o.mmbizwxadevremote.WARemoteDebug_Ping.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid Ping obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_Ping.encode(t).finish(); + break + } + case t.DebugMessageCategory.Breakpoint: { + const e = { + isHit: Boolean(r.is_hit) + }, + t = o.mmbizwxadevremote.WARemoteDebug_Breakpoint.verify(e); + (0, s.expect)(Boolean(t), a).toBe(!1).fail(() => { + throw a.e("invalid Breakpoint obj", t), t + }), b = o.mmbizwxadevremote.WARemoteDebug_Breakpoint.encode(e).finish(); + break + } + case t.DebugMessageCategory.DomOp: { + const e = r, + t = { + params: e.params, + webviewId: e.webview_id + }, + n = o.mmbizwxadevremote.WARemoteDebug_DomOp.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid DomOp obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_DomOp.encode(t).finish(); + break + } + case t.DebugMessageCategory.DomEvent: { + const e = r, + t = { + params: e.params, + webviewId: e.webview_id + }, + n = o.mmbizwxadevremote.WARemoteDebug_DomEvent.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid DomOp obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_DomEvent.encode(t).finish(); + break + } + case t.DebugMessageCategory.ChromeDevtools: { + const e = r, + t = { + opId: e.op_id, + payload: e.payload, + jscontextId: e.jscontext_id + }, + n = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtools.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid chrome devtools object", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtools.encode(t).finish(); + break + } + case t.DebugMessageCategory.ConnectJsContext: { + const e = { + jscontextId: r.jscontext_id + }, + t = o.mmbizwxadevremote.WARemoteDebug_ConnectJsContext.verify(e); + (0, s.expect)(Boolean(t), a).toBe(!1).fail(() => { + throw a.e("invalid connect js context object", t), t + }), b = o.mmbizwxadevremote.WARemoteDebug_ConnectJsContext.encode(e).finish(); + break + } + case t.DebugMessageCategory.CustomMessage: { + const e = r, + t = { + method: e.method, + payload: e.payload, + raw: e.raw + }, + n = o.mmbizwxadevremote.WARemoteDebug_CustomMessage.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid custom message object", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_CustomMessage.encode(t).finish(); + break + } + default: + throw a.e("invalid debug message category", i), new Error("invalid debug message category " + i) + } + let d = 0; + if (b && m && 0 != (m & t.CompressAlgo.Zlib)) { + Date.now(); + d = b.byteLength, b = e.deflateSync(u(b)), b = g(b), n.compressionSavedBytes += d - b.byteLength + } + return { + buffer: b, + originalSize: d + } + } + + function d(e) { + return e.map(e => { + const o = b(e.data, e.category, e.compress_algo); + return { + seq: e.seq, + delay: e.delay, + category: e.category, + data: o.buffer, + compressAlgo: e.compress_algo, + originalSize: o.originalSize + } + }) + } + + function c(s) { + const r = "string" == typeof s.data ? Buffer.from(s.data) : s.data; + let i = r, + m = 0; + if (r && s.compressAlgo && 0 != (s.compressAlgo & t.CompressAlgo.Zlib)) { + Date.now(); + m = i.byteLength, i = e.inflateSync(r), n.compressionSavedBytes += i.byteLength - m + } + let b = null; + const d = s.category; + if (i) switch (s.category) { + case t.DebugMessageCategory.Breakpoint: { + const e = o.mmbizwxadevremote.WARemoteDebug_Breakpoint.decode(i); + b = { + is_hit: o.mmbizwxadevremote.WARemoteDebug_Breakpoint.toObject(e).isHit ? 1 : 0 + }; + break + } + case t.DebugMessageCategory.CallInterface: { + const e = o.mmbizwxadevremote.WARemoteDebug_CallInterface.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_CallInterface.toObject(e); + b = { + name: t.objName, + method: t.methodName, + args: t.methodArgList, + call_id: t.callId + }; + break + } + case t.DebugMessageCategory.CallInterfaceResult: { + const e = o.mmbizwxadevremote.WARemoteDebug_CallInterfaceResult.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_CallInterfaceResult.toObject(e); + b = { + ret: t.ret, + call_id: t.callId, + debug_info: t.debugInfo + }; + break + } + case t.DebugMessageCategory.EvaluateJavascript: { + const e = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascript.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascript.toObject(e); + b = { + script: t.script, + evaluate_id: t.evaluateId, + debug_info: t.debugInfo + }; + break + } + case t.DebugMessageCategory.EvaluateJavascriptResult: { + const e = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.toObject(e); + b = { + ret: t.ret, + evaluate_id: t.evaluateId + }; + break + } + case t.DebugMessageCategory.Ping: { + const e = o.mmbizwxadevremote.WARemoteDebug_Ping.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_Ping.toObject(e); + b = { + ping_id: t.pingId, + payload: t.payload + }; + break + } + case t.DebugMessageCategory.Pong: { + const e = o.mmbizwxadevremote.WARemoteDebug_Pong.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_Pong.toObject(e, { + longs: Number + }); + b = { + ping_id: t.pingId, + network_type: t.networkType, + payload: t.payload + }; + break + } + case t.DebugMessageCategory.SetupContext: { + const e = o.mmbizwxadevremote.WARemoteDebug_SetupContext.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_SetupContext.toObject(e); + b = { + register_interface: { + obj_name: (t.registerInterface || {}).objName, + obj_methods: ((t.registerInterface || {}).objMethodList || []).map(e => ({ + method_name: e.methodName, + method_args: e.methodArgList + })) + }, + configure_js: t.configureJs, + public_js_md5: t.publicJsMd5, + three_js_md5: t.threeJsMd5, + device_info: { + device_name: (t.deviceInfo || {}).deviceName, + device_model: (t.deviceInfo || {}).deviceModel, + os: (t.deviceInfo || {}).systemVersion, + wechat_version: (t.deviceInfo || {}).wechatVersion, + pixel_ratio: (t.deviceInfo || {}).pixelRatio, + screen_width: (t.deviceInfo || {}).screenWidth, + publib: (t.deviceInfo || {}).publibVersion, + user_agent: (t.deviceInfo || {}).userAgent + }, + support_compress_algo: t.supportCompressAlgo + }; + break + } + case t.DebugMessageCategory.DomOp: { + const e = o.mmbizwxadevremote.WARemoteDebug_DomOp.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_DomOp.toObject(e); + b = { + params: t.params, + webview_id: t.webviewId + }; + break + } + case t.DebugMessageCategory.DomEvent: { + const e = o.mmbizwxadevremote.WARemoteDebug_DomEvent.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_DomEvent.toObject(e); + b = { + params: t.params, + webview_id: t.webviewId + }; + break + } + case t.DebugMessageCategory.NetworkDebugAPI: { + const e = o.mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI.toObject(e); + b = { + api_name: t.apiName, + task_id: t.taskId, + request_headers: t.requestHeaders, + timestamp: t.timestamp + }; + break + } + case t.DebugMessageCategory.ChromeDevtools: { + const e = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtools.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtools.toObject(e); + b = { + op_id: t.opId, + payload: t.payload, + jscontext_id: t.jscontextId + }; + break + } + case t.DebugMessageCategory.ChromeDevtoolsResult: { + const e = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult.toObject(e); + b = { + op_id: t.opId, + payload: t.payload, + jscontext_id: t.jscontextId + }; + break + } + case t.DebugMessageCategory.AddJsContext: { + const e = o.mmbizwxadevremote.WARemoteDebug_AddJsContext.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_AddJsContext.toObject(e); + b = { + jscontext_id: t.jscontextId, + jscontext_name: t.jscontextName + }; + break + } + case t.DebugMessageCategory.RemoveJsContext: { + const e = o.mmbizwxadevremote.WARemoteDebug_RemoveJsContext.decode(i); + b = { + jscontext_id: o.mmbizwxadevremote.WARemoteDebug_RemoveJsContext.toObject(e).jscontextId + }; + break + } + case t.DebugMessageCategory.ConnectJsContext: { + const e = o.mmbizwxadevremote.WARemoteDebug_ConnectJsContext.decode(i); + b = { + jscontext_id: o.mmbizwxadevremote.WARemoteDebug_ConnectJsContext.toObject(e).jscontextId + }; + break + } + case t.DebugMessageCategory.CustomMessage: { + const e = o.mmbizwxadevremote.WARemoteDebug_CustomMessage.decode(i), + t = o.mmbizwxadevremote.WARemoteDebug_CustomMessage.toObject(e); + b = { + method: t.method, + payload: t.payload, + raw: t.raw + }; + break + } + default: + a.e("invalid debug object category"), b = null + } else b = null; + return { + seq: s.seq || 0, + delay: s.after || 0, + category: d || t.DebugMessageCategory.Ping, + data: b || {}, + compress_algo: s.compressAlgo || 0, + original_size: s.originalSize || m + } + } + + function u(e) { + let o = Buffer.from(e.buffer); + return e.byteLength !== e.buffer.byteLength && (o = o.slice(e.byteOffset, e.byteOffset + e.byteLength)), o + } + + function g(e) { + if (!e) throw new Error("invalid buffer " + e); + if ("Uint8Array" === e.constructor.name || e.constructor === Uint8Array) return e; + "string" == typeof e && (e = Buffer.from(e)); + const o = new Uint8Array(e.length); + for (let t = 0; t < e.length; t++) o[t] = e[t]; + return o + } + exports.requestCmdForType = i, exports.clientRequestCmdForType = m, exports.wrapDebugMessageData = b, exports.wrapOutgoingToProto = function(e, n, r, m = !1) { + let b = null; + switch (n) { + case t.RequestType.Login: { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + newticket: t.newticket + }; + t.autodev && (n.autodev = t.autodev); + const r = o.mmbizwxadevremote.WARemoteDebug_DevLoginReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid login request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_DevLoginReq.encode(n).finish(); + break + } + case t.RequestType.JoinRoom: { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + appid: t.appid, + roomId: t.room_id, + wxpkgInfo: t.wxpkg_info + }, + r = o.mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid join room request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq.encode(n).finish(); + break + } + case t.RequestType.Heartbeat: { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + recvAck: t.recv_ack + }, + r = o.mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid heartbeat request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq.encode(n).finish(); + break + } + case t.RequestType.SendDebugMessageParallelly: + if (m) { + const t = { + debugMessageList: d(e.debug_message) + }, + n = o.mmbizwxadevremote.WARemoteDebug_MessageNotify.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid SendDebugMessageParallelly request obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_MessageNotify.encode(t).finish(); + break + } { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + recvAck: t.recv_ack, + debugMessageList: d(t.debug_message) + }, + r = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid SendDebugMessageParallelly request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.encode(n).finish(); + break + } + case t.RequestType.SendDebugMessage: { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + recvAck: t.recv_ack, + debugMessageList: d(t.debug_message) + }, + r = o.mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid SendDebugMessage request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.encode(n).finish(); + break + } + case t.RequestType.QuitRoom: { + const t = { + baseRequest: { + clientVersion: e.base_request.clientversion + } + }, + n = o.mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid QuitRoom request obj", n), n + }), b = o.mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq.encode(t).finish(); + break + } + case t.RequestType.SyncMessage: { + const t = e, + n = { + baseRequest: { + clientVersion: t.base_request.clientversion + }, + minSeq: t.min_seq + }; + "number" == typeof t.max_seq && (n.maxSeq = t.max_seq); + const r = o.mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid SyncMessage request obj", r), r + }), b = o.mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq.encode(n).finish(); + break + } + case t.ResponseType.MessageNotifyParallelly: { + const e = { + errcode: 0, + errmsg: "" + }; + b = o.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.encode({ + baseResponse: e + }).finish(); + break + } + default: + throw a.e("error wrapping outgoing object, invalid type", n), new Error("error wrapping outgoing object, invalid type " + n) + } + const c = o.mmbizwxadevremote.WARemoteDebug_DataFormat.create({ + cmd: i(n), + uuid: r, + data: b + }); + return o.mmbizwxadevremote.WARemoteDebug_DataFormat.encode(c).finish() + }, exports.unwrapDebugMessageData = c, exports.unwrapProtoToDataFormat = function(e) { + const s = o.mmbizwxadevremote.WARemoteDebug_DataFormat.decode(e), + n = "string" == typeof s.data ? Buffer.from(s.data) : s.data; + let i = null; + switch (s.cmd) { + case t.ResponseType.Heartbeat: { + const e = o.mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp.decode(n); + i = { + base_response: o.mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp.toObject(e).baseResponse + }; + break + } + case t.ResponseType.Login: { + const e = o.mmbizwxadevremote.WARemoteDebug_DevLoginResp.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_DevLoginResp.toObject(e); + i = { + base_response: t.baseResponse, + room_info: { + join_room: (t.roomInfo || {}).joinRoom, + original_md5: (t.roomInfo || {}).originalMd5, + room_status: (t.roomInfo || {}).roomStatus, + wx_conn_status: (t.roomInfo || {}).wxConnStatus, + dev_conn_status: (t.roomInfo || {}).devConnStatus, + room_id: (t.roomInfo || {}).roomId + } + }; + break + } + case t.ResponseType.EventNotifyEnd: + case t.ResponseType.EventNotifyBlock: + case t.ResponseType.EventNotifyBegin: { + const e = o.mmbizwxadevremote.WARemoteDebug_EventNotify.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_EventNotify.toObject(e); + i = { + base_response: Object.assign({}, t.baseResponse || {}) + }; + break + } + case t.ResponseType.JoinRoom: { + const e = o.mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp.decode(n); + i = { + base_response: o.mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp.toObject(e).baseResponse + }; + break + } + case t.ResponseType.MessageNotifyParallelly: + case t.ResponseType.MessageNotify: { + const e = o.mmbizwxadevremote.WARemoteDebug_MessageNotify.decode(n).debugMessageList, + t = []; + for (const o of e) t.push(c(o)); + i = { + debug_message: t + }; + break + } + case t.ResponseType.QuitRoom: { + const e = o.mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp.decode(n); + i = { + base_response: o.mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp.toObject(e).baseResponse + }; + break + } + case t.ResponseType.SendDebugMessageParallelly: { + const e = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.toObject(e); + i = { + base_response: t.baseResponse, + max_ack: t.maxAck, + min_ack: t.minAck + }; + break + } + case t.ResponseType.SendDebugMessage: { + const e = o.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.toObject(e); + i = { + base_response: t.baseResponse, + send_ack: t.sendAck + }; + break + } + case t.ResponseType.SyncMessage: { + const e = o.mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.decode(n), + t = e.debugMessageList, + s = []; + for (const e of t) s.push(c(e)); + i = { + debug_message: s, + send_ack: e.sendAck, + base_response: e.baseResponse + }; + break + } + default: + a.e("error receive invalid cmd", s.cmd), i = {} + } + return { + cmd: s.cmd, + uuid: s.uuid, + data: i, + _comment: r(s.cmd) + } + }, exports.uint8ArrayToBuffer = u, exports.bufferToUint8Array = g, exports.unwrapClientProtoToDataFormat = function(e) { + const s = o.mmbizwxadevremote.WARemoteDebug_DataFormat.decode(e), + n = "string" == typeof s.data ? Buffer.from(s.data) : s.data; + let i = null; + switch (s.cmd) { + case t.ClientRequestCmd.Login: { + const e = o.mmbizwxadevremote.WARemoteDebug_WxLoginReq.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_WxLoginReq.toObject(e); + i = { + base_request: { + clientversion: t.baseRequest + }, + loginticket: t.loginTicket + }; + break + } + case t.ClientRequestCmd.Heartbeat: { + const e = o.mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq.toObject(e); + i = { + base_request: { + clientversion: t.baseRequest + }, + recv_ack: t.recvAck + }; + break + } + case t.ClientRequestCmd.JoinRoom: { + const e = o.mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq.toObject(e); + i = { + base_request: { + clientversion: t.baseRequest + }, + wxpkg_info: t.wxpkgInfo, + username: t.username, + room_id: t.roomId + }; + break + } + case t.ClientRequestCmd.QuitRoom: { + const e = o.mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq.decode(n); + i = { + base_request: { + clientversion: o.mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq.toObject(e).baseRequest + } + }; + break + } + case t.ClientRequestCmd.SendDebugMessageParallelly: { + const e = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.toObject(e); + i = { + base_request: { + clientversion: t.baseRequest + }, + debug_message: (t.debugMessageList || []).map(e => c(e)), + recv_ack: t.recvAck + }; + break + } + case t.ClientRequestCmd.SyncMessage: { + const e = o.mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq.decode(n), + t = o.mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq.toObject(e); + i = { + base_request: { + clientversion: t.baseRequest + }, + min_seq: t.minSeq, + max_seq: t.maxSeq + }; + break + } + default: + a.e("error receive invalid cmd", s.cmd), i = {} + } + return { + cmd: s.cmd, + uuid: s.uuid, + data: i, + _comment: r(s.cmd) + } + }, exports.wrapClientResponseDataFormatToProto = function(e, n, r) { + let i = null; + switch (n) { + case t.ClientResponseType.Login: { + const t = e, + n = { + baseResponse: { + errcode: (t.base_response || {}).errcode, + errmsg: (t.base_response || {}).errmsg + }, + roomInfo: { + joinRoom: (t.room_info || {}).join_room, + originalMd5: (t.room_info || {}).original_md5, + roomStatus: (t.room_info || {}).room_status, + wxConnStatus: (t.room_info || {}).wx_conn_status, + devConnStatus: (t.room_info || {}).dev_conn_status, + roomId: (t.room_info || {}).room_id + } + }, + r = o.mmbizwxadevremote.WARemoteDebug_WxLoginResp.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid client login response obj", r), r + }), i = o.mmbizwxadevremote.WARemoteDebug_WxLoginResp.encode(n).finish(); + break + } + case t.ClientResponseType.JoinRoom: { + const t = { + baseResponse: e.base_response + }, + n = o.mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid client join room response obj", n), n + }), i = o.mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp.encode(t).finish(); + break + } + case t.ClientResponseType.Heartbeat: { + const t = { + baseResponse: e.base_response + }, + n = o.mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid client heartbeat response obj", n), n + }), i = o.mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp.encode(t).finish(); + break + } + case t.ClientResponseType.SendDebugMessageParallelly: { + const t = e, + n = { + baseResponse: t.base_response, + maxAck: t.max_ack, + minAck: t.min_ack + }, + r = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid client SendDebugMessageParallelly response obj", r), r + }), i = o.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.encode(n).finish(); + break + } + case t.ClientResponseType.QuitRoom: { + const t = { + baseResponse: e.base_response + }, + n = o.mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid client QuitRoom response obj", n), n + }), i = o.mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp.encode(t).finish(); + break + } + case t.ClientResponseType.SyncMessage: { + const t = e, + n = { + baseResponse: t.base_response, + debugMessageList: d(t.debug_message), + sendAck: t.send_ack + }, + r = o.mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.verify(n); + (0, s.expect)(Boolean(r), a).toBe(!1).fail(() => { + throw a.e("invalid client sync message response obj", r), r + }), i = o.mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.encode(n).finish(); + break + } + case t.ClientResponseType.MessageNotifyParallelly: { + const t = { + debugMessageList: d(e.debug_message) + }, + n = o.mmbizwxadevremote.WARemoteDebug_MessageNotify.verify(t); + (0, s.expect)(Boolean(n), a).toBe(!1).fail(() => { + throw a.e("invalid client MessageNotifyParallelly response obj", n), n + }), i = o.mmbizwxadevremote.WARemoteDebug_MessageNotify.encode(t).finish(); + break + } + case t.ClientResponseType.EventNotifyEnd: + case t.ClientResponseType.EventNotifyBlock: + case t.ClientResponseType.EventNotifyBegin: { + const e = {}, + t = o.mmbizwxadevremote.WARemoteDebug_EventNotify.verify(e); + (0, s.expect)(Boolean(t), a).toBe(!1).fail(() => { + throw a.e("invalid client ClientEventNotify response obj", t), t + }), i = o.mmbizwxadevremote.WARemoteDebug_EventNotify.encode(e).finish(); + break + } + default: + throw a.e("error wrapping outgoing object, invalid type", n), new Error("error wrapping outgoing object, invalid type " + n) + } + const b = o.mmbizwxadevremote.WARemoteDebug_DataFormat.create({ + cmd: m(n), + uuid: r, + data: i + }); + return o.mmbizwxadevremote.WARemoteDebug_DataFormat.encode(b).finish() + }, exports.model = { + resetStatistics() { + n = { + compressionSavedBytes: 0 + } + }, + getCompressionSavedBytes: () => n.compressionSavedBytes || 0 + }, exports.model.resetStatistics(); +}(require, require) \ No newline at end of file diff --git a/scripts/wechat4_third_party/RemoteDebugConstants.js b/scripts/wechat4_third_party/RemoteDebugConstants.js new file mode 100644 index 0000000..2579a2c --- /dev/null +++ b/scripts/wechat4_third_party/RemoteDebugConstants.js @@ -0,0 +1,791 @@ +! function(require, directRequire) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: !0 + }), exports.PubLibMap = exports.DevtoolNetworkType = exports.ClientNetWorkSpeed = exports.ClientNetWorkType = exports.KnownErrorCode = exports.DebugMessageCategory = exports.ClientRequestCmd = exports.RequestCmd = exports.ClientResponseType = exports.ClientRequestType = exports.RequestType = exports.CompressAlgo = exports.ResponseType = exports.RemoteDataPrefix = exports.RemoteRuntimePrefx = exports.RemoteAppPrefix = exports.RemoteVendorDir = exports.RemoteLogDir = exports.RemoteDataDir = exports.RemoteTempDir = exports.RemoteDir = exports.RemoteHttpUrlHost = exports.RemoteUrl = void 0; + // const e = require('./87340deef308fb62efd7eb7a7e63e98d.js'); + // exports.RemoteUrl = "wss://wxagame.weixin.qq.com/remote/", exports.RemoteHttpUrlHost = "https://servicewechat.com/wxa-dev-cloud/", exports.RemoteDir = e.WeappRemote, exports.RemoteTempDir = e.WeappRemoteTemp, exports.RemoteDataDir = e.WeappRemoteData, exports.RemoteLogDir = e.WeappRemoteLog, exports.RemoteVendorDir = e.WeappRemoteVendor, exports.RemoteAppPrefix = "REMOTE_DEBUG_APP/", exports.RemoteRuntimePrefx = "REMOTE_DEBUG_RUNTIME/", exports.RemoteDataPrefix = "REMOTE_DEBUG_DATA/", + exports, function(e) { + e[e.Heartbeat = 2001] = "Heartbeat", e[e.Login = 2002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 2003] = "JoinRoom", e[e.SendDebugMessage = 2e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 2006] = "SendDebugMessageParallelly", e[e.QuitRoom = 2004] = "QuitRoom", e[e.MessageNotify = 1e3] = "MessageNotify", e[e.MessageNotifyParallelly = 1006] = "MessageNotifyParallelly", e[e.SyncMessage = 2005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.ResponseType || (exports.ResponseType = {})), + function(e) { + e[e.None = 0] = "None", e[e.Zlib = 1] = "Zlib" + }(exports.CompressAlgo || (exports.CompressAlgo = {})), + function(e) { + e[e.Heartbeat = 2001] = "Heartbeat", e[e.Login = 2002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 2003] = "JoinRoom", e[e.SendDebugMessage = 2e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 2006] = "SendDebugMessageParallelly", e[e.QuitRoom = 2004] = "QuitRoom", e[e.MessageNotify = 1e3] = "MessageNotify", e[e.MessageNotifyParallelly = 1006] = "MessageNotifyParallelly", e[e.SyncMessage = 2005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.RequestType || (exports.RequestType = {})), + function(e) { + e[e.Heartbeat = 1001] = "Heartbeat", e[e.Login = 1002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 1003] = "JoinRoom", e[e.SendDebugMessage = 1e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 1006] = "SendDebugMessageParallelly", e[e.QuitRoom = 1004] = "QuitRoom", e[e.MessageNotify = 2e3] = "MessageNotify", e[e.MessageNotifyParallelly = 2006] = "MessageNotifyParallelly", e[e.SyncMessage = 1005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.ClientRequestType || (exports.ClientRequestType = {})), + function(e) { + e[e.Heartbeat = 1001] = "Heartbeat", e[e.Login = 1002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 1003] = "JoinRoom", e[e.SendDebugMessage = 1e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 1006] = "SendDebugMessageParallelly", e[e.QuitRoom = 1004] = "QuitRoom", e[e.MessageNotify = 2e3] = "MessageNotify", e[e.MessageNotifyParallelly = 2006] = "MessageNotifyParallelly", e[e.SyncMessage = 1005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.ClientResponseType || (exports.ClientResponseType = {})), + function(e) { + e[e.Heartbeat = 2001] = "Heartbeat", e[e.Login = 2002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 2003] = "JoinRoom", e[e.SendDebugMessage = 2e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 2006] = "SendDebugMessageParallelly", e[e.QuitRoom = 2004] = "QuitRoom", e[e.MessageNotify = 1e3] = "MessageNotify", e[e.MessageNotifyParallelly = 1006] = "MessageNotifyParallelly", e[e.SyncMessage = 2005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.RequestCmd || (exports.RequestCmd = {})), + function(e) { + e[e.Heartbeat = 1001] = "Heartbeat", e[e.Login = 1002] = "Login", e[e.EventNotifyBegin = 3001] = "EventNotifyBegin", e[e.EventNotifyEnd = 3002] = "EventNotifyEnd", e[e.EventNotifyBlock = 3003] = "EventNotifyBlock", e[e.JoinRoom = 1003] = "JoinRoom", e[e.SendDebugMessage = 1e3] = "SendDebugMessage", e[e.SendDebugMessageParallelly = 1006] = "SendDebugMessageParallelly", e[e.QuitRoom = 1004] = "QuitRoom", e[e.MessageNotify = 2e3] = "MessageNotify", e[e.MessageNotifyParallelly = 2006] = "MessageNotifyParallelly", e[e.SyncMessage = 1005] = "SyncMessage", e[e.Unknown = -1] = "Unknown" + }(exports.ClientRequestCmd || (exports.ClientRequestCmd = {})), + function(e) { + e.SetupContext = "setupContext", e.CallInterface = "callInterface", e.EvaluateJavascript = "evaluateJavascript", e.CallInterfaceResult = "callInterfaceResult", e.EvaluateJavascriptResult = "evaluateJavascriptResult", e.Breakpoint = "breakpoint", e.Ping = "ping", e.Pong = "pong", e.DomOp = "domOp", e.DomEvent = "domEvent", e.NetworkDebugAPI = "networkDebugAPI", e.ChromeDevtools = "chromeDevtools", e.ChromeDevtoolsResult = "chromeDevtoolsResult", e.AddJsContext = "addJsContext", e.RemoveJsContext = "removeJsContext", e.ConnectJsContext = "connectJsContext", e.EngineEvent = "engineEvent", e.EngineOp = "engineOp", e.CustomMessage = "customMessage" + }(exports.DebugMessageCategory || (exports.DebugMessageCategory = {})), + function(e) { + e[e.OK = 0] = "OK", e[e.ERR_SYS = -1] = "ERR_SYS", e[e.NOT_EXIST = 1] = "NOT_EXIST", e[e.INVALID_ARGS = -2] = "INVALID_ARGS", e[e.SYSTEM_BUSY = -3] = "SYSTEM_BUSY", e[e.INVALID_LOGIN_TICKET = -50001] = "INVALID_LOGIN_TICKET", e[e.HAS_NO_PERMISSION = -50002] = "HAS_NO_PERMISSION", e[e.ROOM_IN_DEBUGGING = -50003] = "ROOM_IN_DEBUGGING", e[e.NO_EXIST_ROOM = -50004] = "NO_EXIST_ROOM", e[e.MD5_NOT_MATCH = -50005] = "MD5_NOT_MATCH", e[e.USER_IN_DEBUGGING = -50006] = "USER_IN_DEBUGGING", e[e.SEQ_ERROR = -50010] = "SEQ_ERROR", e[e.SEND_MSG_BUSY = -50011] = "SEND_MSG_BUSY", e[e.SEND_MSG_SEQ_RANGE_ERROR = -50012] = "SEND_MSG_SEQ_RANGE_ERROR" + }(exports.KnownErrorCode || (exports.KnownErrorCode = {})), + function(e) { + e[e.Offline = 0] = "Offline", e[e.TwoG = 1] = "TwoG", e[e.ThreeG = 2] = "ThreeG", e[e.FourG = 3] = "FourG", e[e.WiFi = 4] = "WiFi", e[e.Other = 5] = "Other", e[e.AndroidCable = -1] = "AndroidCable", e[e.IOSCable = -2] = "IOSCable", e[e.Local = -3] = "Local" + }(exports.ClientNetWorkType || (exports.ClientNetWorkType = {})), + function(e) { + e[e.Lost = 0] = "Lost", e[e.VeryBad = 1] = "VeryBad", e[e.Bad = 2] = "Bad", e[e.Normal = 3] = "Normal", e[e.Good = 4] = "Good", e[e.VeryGood = 5] = "VeryGood" + }(exports.ClientNetWorkSpeed || (exports.ClientNetWorkSpeed = {})), + function(e) { + e[e.bluetooth = 11] = "bluetooth", e[e.bellular = 12] = "bellular", e[e.ethernet = 13] = "ethernet", e[e.mixed = 14] = "mixed", e[e.none = 15] = "none", e[e.other = 16] = "other", e[e.unknown = 17] = "unknown", e[e.wifi = 18] = "wifi", e[e.wimax = 19] = "wimax" + }(exports.DevtoolNetworkType || (exports.DevtoolNetworkType = {})), exports.PubLibMap = { + 33: { + number_version: 33, + version: "6.5.4.1", + status: 1 + }, + 34: { + number_version: 34, + version: "6.5.3.1", + status: 1 + }, + 35: { + number_version: 35, + version: "6.5.4.2", + status: 1 + }, + 36: { + number_version: 36, + version: "6.5.6.1", + status: 1 + }, + 37: { + number_version: 37, + version: "6.5.4.2", + status: 1 + }, + 38: { + number_version: 38, + version: "1.1.0", + status: 1 + }, + 39: { + number_version: 39, + version: "1.1.1", + status: 1 + }, + 40: { + number_version: 40, + version: "1.0.1", + status: 1 + }, + 41: { + number_version: 41, + version: "1.1.1", + status: 1 + }, + 42: { + number_version: 42, + version: "1.2.0", + status: 1 + }, + 43: { + number_version: 43, + version: "1.2.1", + status: 1 + }, + 44: { + number_version: 44, + version: "1.2.2", + status: 1 + }, + 45: { + number_version: 45, + version: "1.2.3", + status: 1 + }, + 46: { + number_version: 46, + version: "1.2.2", + status: 1 + }, + 47: { + number_version: 47, + version: "1.2.4", + status: 1 + }, + 48: { + number_version: 48, + version: "1.2.5", + status: 1 + }, + 49: { + number_version: 49, + version: "1.2.4", + ios_begin_ver: 0, + ios_end_ver: 0, + android_begin_ver: 637864048, + android_end_ver: 637864049, + status: 1 + }, + 50: { + number_version: 50, + version: "1.2.6", + ios_begin_ver: 369428480, + ios_end_ver: 536870911, + android_begin_ver: 637863936, + android_end_ver: 805306367, + status: 1 + }, + 51: { + number_version: 51, + version: "1.3.0", + ios_begin_ver: 369428736, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 52: { + number_version: 52, + version: "1.3.0", + ios_begin_ver: 0, + ios_end_ver: 0, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 53: { + number_version: 53, + version: "1.4.0", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 54: { + number_version: 54, + version: "1.4.0", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 55: { + number_version: 55, + version: "1.4.1", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 56: { + number_version: 56, + version: "1.4.1", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 57: { + number_version: 57, + version: "1.4.2", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 58: { + number_version: 58, + version: "1.4.3", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 59: { + number_version: 59, + version: "1.4.4", + ios_begin_ver: 369428992, + ios_end_ver: 536870911, + android_begin_ver: 637864448, + android_end_ver: 805306367, + status: 1 + }, + 60: { + number_version: 60, + version: "1.5.0", + ios_begin_ver: 369429760, + ios_end_ver: 536870911, + android_begin_ver: 637865216, + android_end_ver: 805306367, + status: 1 + }, + 61: { + number_version: 61, + version: "1.5.1", + ios_begin_ver: 369429760, + ios_end_ver: 536870911, + android_begin_ver: 637865216, + android_end_ver: 805306367, + status: 1 + }, + 62: { + number_version: 62, + version: "1.5.2", + ios_begin_ver: 369429760, + ios_end_ver: 536870911, + android_begin_ver: 637865216, + android_end_ver: 805306367, + status: 1 + }, + 63: { + number_version: 63, + version: "1.5.3", + ios_begin_ver: 369429760, + ios_end_ver: 536870911, + android_begin_ver: 637865216, + android_end_ver: 805306367, + status: 1 + }, + 64: { + number_version: 64, + version: "1.5.4", + ios_begin_ver: 369430561, + ios_end_ver: 369430561, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 65: { + number_version: 65, + version: "1.5.4", + ios_begin_ver: 369430561, + ios_end_ver: 536870911, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 66: { + number_version: 66, + version: "1.5.5", + ios_begin_ver: 369429760, + ios_end_ver: 369430527, + android_begin_ver: 637865216, + android_end_ver: 637865983, + status: 1 + }, + 67: { + number_version: 67, + version: "1.5.6", + ios_begin_ver: 369429760, + ios_end_ver: 369430527, + android_begin_ver: 637865216, + android_end_ver: 637865983, + status: 1 + }, + 68: { + number_version: 68, + version: "1.5.3", + ios_begin_ver: 369431328, + ios_end_ver: 369431328, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 69: { + number_version: 69, + version: "1.5.6", + ios_begin_ver: 369429760, + ios_end_ver: 369430527, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 70: { + number_version: 70, + version: "1.5.3", + ios_begin_ver: 369431329, + ios_end_ver: 369431329, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 71: { + number_version: 71, + version: "1.6.0", + ios_begin_ver: 369430528, + ios_end_ver: 369431295, + android_begin_ver: 637865984, + android_end_ver: 637866751, + status: 1 + }, + 72: { + number_version: 72, + version: "1.5.7", + ios_begin_ver: 369429760, + ios_end_ver: 369430527, + android_begin_ver: 637865216, + android_end_ver: 637865983, + status: 1 + }, + 73: { + number_version: 73, + version: "1.6.1", + ios_begin_ver: 369430528, + ios_end_ver: 369431295, + android_begin_ver: 637865984, + android_end_ver: 637866751, + status: 1 + }, + 74: { + number_version: 74, + version: "1.6.2", + ios_begin_ver: 369431296, + ios_end_ver: 536870911, + android_begin_ver: 637866752, + android_end_ver: 805306367, + status: 1 + }, + 75: { + number_version: 75, + version: "1.6.3", + ios_begin_ver: 369430528, + ios_end_ver: 536870911, + android_begin_ver: 637865984, + android_end_ver: 805306367, + status: 1 + }, + 77: { + number_version: 77, + version: "1.6.4", + ios_begin_ver: 369430528, + ios_end_ver: 536870911, + android_begin_ver: 637865984, + android_end_ver: 805306367, + status: 1 + }, + 78: { + number_version: 78, + version: "1.6.4", + ios_begin_ver: 369430528, + ios_end_ver: 536870911, + android_begin_ver: 637865984, + android_end_ver: 805306367, + status: 1 + }, + 79: { + number_version: 79, + version: "1.6.5", + ios_begin_ver: 369430528, + ios_end_ver: 536870911, + android_begin_ver: 637865984, + android_end_ver: 805306367, + status: 1 + }, + 80: { + number_version: 80, + version: "1.6.6", + ios_begin_ver: 369430528, + ios_end_ver: 536870911, + android_begin_ver: 637865984, + android_end_ver: 805306367, + status: 1 + }, + 82: { + number_version: 82, + version: "1.7.0", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 0 + }, + 83: { + number_version: 83, + version: "1.7.0", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 0 + }, + 84: { + number_version: 84, + version: "1.7.0", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 1 + }, + 85: { + number_version: 85, + version: "1.5.8", + ios_begin_ver: 369429760, + ios_end_ver: 369430527, + android_begin_ver: 637865216, + android_end_ver: 637865983, + status: 1 + }, + 86: { + number_version: 86, + version: "1.7.1", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 1 + }, + 87: { + number_version: 87, + version: "1.6.7", + ios_begin_ver: 369430528, + ios_end_ver: 369432063, + android_begin_ver: 637865984, + android_end_ver: 637867519, + status: 0 + }, + 88: { + number_version: 88, + version: "1.7.2", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 0 + }, + 89: { + number_version: 89, + version: "1.7.3", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 1 + }, + 90: { + number_version: 90, + version: "0.0.0", + ios_begin_ver: 369432064, + ios_end_ver: 369432063, + android_begin_ver: 637867520, + android_end_ver: 637867519, + status: 0 + }, + 91: { + number_version: 91, + version: "1.6.8", + ios_begin_ver: 369430528, + ios_end_ver: 369432063, + android_begin_ver: 637865984, + android_end_ver: 637867519, + status: 1 + }, + 92: { + number_version: 92, + version: "1.7.4", + ios_begin_ver: 369432064, + ios_end_ver: 536870911, + android_begin_ver: 637867520, + android_end_ver: 805306367, + status: 1 + }, + 93: { + number_version: 93, + version: "1.9.0", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 1 + }, + 94: { + number_version: 94, + version: "1.9.1", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 1 + }, + 95: { + number_version: 95, + version: "1.9.2", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 1 + }, + 96: { + number_version: 96, + version: "1.9.3", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 0 + }, + 97: { + number_version: 97, + version: "1.9.3", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 0 + }, + 98: { + number_version: 98, + version: "1.9.3", + ios_begin_ver: 369491968, + ios_end_ver: 536870911, + android_begin_ver: 637927424, + android_end_ver: 805306367, + status: 0 + }, + 99: { + number_version: 99, + version: "1.9.3", + ios_begin_ver: 369491968, + ios_end_ver: 369492223, + android_begin_ver: 637927424, + android_end_ver: 637927679, + status: 1 + }, + 100: { + number_version: 100, + version: "1.9.5", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 101: { + number_version: 101, + version: "1.9.4", + ios_begin_ver: 369491968, + ios_end_ver: 369492223, + android_begin_ver: 637927424, + android_end_ver: 637927679, + status: 1 + }, + 102: { + number_version: 102, + version: "1.9.6", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 103: { + number_version: 103, + version: "1.9.8", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 104: { + number_version: 104, + version: "1.9.8", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 105: { + number_version: 105, + version: "1.9.8", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 106: { + number_version: 106, + version: "1.9.9", + ios_begin_ver: 369492224, + ios_end_ver: 536870911, + android_begin_ver: 637927680, + android_end_ver: 805306367, + status: 1 + }, + 107: { + number_version: 107, + version: "1.9.90", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 108: { + number_version: 108, + version: "1.9.91", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 109: { + number_version: 109, + version: "1.9.91", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 0 + }, + 110: { + number_version: 110, + version: "1.9.91", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 111: { + number_version: 111, + version: "1.9.91", + ios_begin_ver: 369493536, + ios_end_ver: 369493536, + android_begin_ver: 0, + android_end_ver: 0, + status: 0 + }, + 112: { + number_version: 112, + version: "1.9.92", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 113: { + number_version: 113, + version: "1.9.93", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 114: { + number_version: 114, + version: "1.9.94", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 115: { + number_version: 115, + version: "1.9.95", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 116: { + number_version: 116, + version: "1.9.96", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 117: { + number_version: 117, + version: "1.9.97", + ios_begin_ver: 369492480, + ios_end_ver: 536870911, + android_begin_ver: 637927936, + android_end_ver: 805306367, + status: 1 + }, + 118: { + number_version: 118, + version: "1.9.98", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 119: { + number_version: 119, + version: "2.0.0", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 0, + android_end_ver: 0, + status: 1 + }, + 120: { + number_version: 120, + version: "2.0.1", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 637928960, + android_end_ver: 805306367, + status: 1 + }, + 121: { + number_version: 121, + version: "2.0.2", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 637928960, + android_end_ver: 805306367, + status: 1 + }, + 122: { + number_version: 122, + version: "2.0.3", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 637928960, + android_end_ver: 805306367, + status: 1 + }, + 123: { + number_version: 123, + version: "1", + ios_begin_ver: 0, + ios_end_ver: 0, + android_begin_ver: 0, + android_end_ver: 0, + status: 0 + }, + 124: { + number_version: 124, + version: "2.0.4", + ios_begin_ver: 369493504, + ios_end_ver: 536870911, + android_begin_ver: 637928960, + android_end_ver: 805306367, + status: 1 + } + }; +}(require, require) \ No newline at end of file diff --git a/scripts/wechat4_third_party/RemoteDebugUtils.js b/scripts/wechat4_third_party/RemoteDebugUtils.js new file mode 100644 index 0000000..4660369 --- /dev/null +++ b/scripts/wechat4_third_party/RemoteDebugUtils.js @@ -0,0 +1,128 @@ +! function(require, directRequire) { + "use strict"; + + function t(t) { + return Object.prototype.toString.call(t).toLowerCase().slice(8, -1) + } + + function e(e, o) { + "string" === t(e) && (o = e, e = null); + let r = e; + const n = o || (null == e ? void 0 : e.message); + return e instanceof Error || (r = new Error(n)), r.message = n, r + } + Object.defineProperty(exports, "__esModule", { + value: !0 + }), exports.guessMimeTypeFromHeader = exports.randomString = exports.expect = exports.expectFail = exports.delayPromise = exports.assertNever = exports.safeGet = exports.jsonParse = exports.jsonStringify = exports.invalidTryCatchResult = exports.tryCatch = exports.logStack = exports.logInvoke = exports.randomId = exports.dateStamp = exports.timeStamp = exports.padStart = exports.noop = exports.clientVersion = exports.isMac = exports.isDev = exports.commonError = exports.typeOf = void 0, exports.typeOf = t, exports.commonError = e, exports.isDev = global.appConfig && global.appConfig.isDev, exports.isMac = "darwin" === process.platform, exports.clientVersion = parseInt((global.appVersion || "-1").replace(/\./g, ""), 10); + + function o(t, e, o) { + o = "" + o; + let r = ""; + for (let o = 0; o < t; o++) r += e; + return r.substring(0, r.length - o.length) + o + } + exports.noop = () => {}, exports.padStart = o, exports.timeStamp = function(t) { + const e = o.bind(null, 3, "0"), + r = o.bind(null, 2, "0"), + n = -(t = t || new Date).getTimezoneOffset() / 60; + return `[GMT${n>=0?"+":"-"}${n} ${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())} ${r(t.getHours())}:${r(t.getMinutes())}:${r(t.getSeconds())}:${e(t.getMilliseconds())}]` + }, exports.dateStamp = function(t, e = !1) { + const r = o.bind(null, 3, "0"), + n = o.bind(null, 2, "0"); + return t = t || new Date, e ? `${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())} ${n(t.getHours())}-${n(t.getMinutes())}-${n(t.getSeconds())}-${r(t.getMilliseconds())}` : `${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}` + }, exports.randomId = function(t = "") { + return `${t=t?t+"-":""}${Math.round(1e4*Math.random())}-${Date.now()}` + }, exports.logInvoke = function(t) { + return function(e, o, r) { + if (!exports.isDev) return r; + const n = r.value; + return r.value = function(...e) { + var r; + const s = (null === (r = null == this ? void 0 : this.constructor) || void 0 === r ? void 0 : r.name) || ""; + e.length > 0 ? t.i(`${s}.${o}(`, e, ")") : t.i(`${s}.${o}()`); + return n.call(this, ...e) + }, r + } + }, exports.logStack = function(t) { + return function(e, o, r) { + if (!exports.isDev) return r; + const n = r.value; + return r.value = function(...e) { + var r; + const s = (null === (r = null == this ? void 0 : this.constructor) || void 0 === r ? void 0 : r.name) || "", + i = (new Error).stack; + exports.isDev && console.group && console.group(`${s}.${o} :: STACK`), t.i(i), exports.isDev && console.groupEnd && console.groupEnd(); + return n.call(this, ...e) + }, r + } + }; + const r = Symbol.for("tryCatchError"); + + function n(t, e, o) { + var r, n; + t.assert("!!! [assert expect] !!!", e, "does not satisfy", o), null === (r = console.group) || void 0 === r || r.call(console, "!!! [assert :: STACK] !!!"), t.assert((new Error).stack), null === (n = console.groupEnd) || void 0 === n || n.call(console) + } + exports.tryCatch = function(t) { + try { + return t() + } catch (t) { + return { + error: e(t), + _tag: r, + toString: () => "[Object TryCatchError]" + } + } + }, exports.invalidTryCatchResult = function(t) { + return t && t._tag === r + }, exports.jsonStringify = function(t) { + return JSON.stringify(t) + }, exports.jsonParse = function(t) { + return JSON.parse(t) + }, exports.safeGet = function(t, e, o) { + const r = e.split("."); + let n = t; + for (const t of r) { + const e = n[t]; + if (void 0 === e) return o; + n = e + } + return n + }, exports.assertNever = function(...t) { + console.error("!!! [assert never] !!!", ...t) + }, exports.delayPromise = function(t) { + return new Promise(e => { + setTimeout(() => { + e() + }, t > 0 ? t : 0) + }) + }; + const s = { + fail: (...t) => s, + pass: t => (t.call(void 0), s) + }; + exports.expectFail = { + fail: t => (t.call(void 0), exports.expectFail), + pass: (...t) => exports.expectFail + }, exports.expect = function(t, e) { + return { + as: o => o(t) ? s : (n(e, t, o.toString()), exports.expectFail), + toBe: o => Object.is(t, o) ? s : (n(e, t, o), exports.expectFail), + toFuzzyEqual: o => o !== t ? (n(e, t, o), exports.expectFail) : s + } + }, exports.randomString = function(t = 12) { + const e = "=-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + Date.now(); + let o = ""; + for (let r = 0; r < t; r++) { + const t = Math.floor(Math.random() * e.length); + o += e.substring(t, t + 1) + } + return o + }, exports.guessMimeTypeFromHeader = function(t) { + if (!t) return "text/plain"; + const e = ["Content-Type", "content-type", "Content-type", "content-Type"]; + for (const o of e) + if ("string" == typeof t[o]) { + return t[o].split(";")[0] + } return "text/plain" + }; +}(require, require) \ No newline at end of file diff --git a/scripts/wechat4_third_party/WARemoteDebugProtobuf.js b/scripts/wechat4_third_party/WARemoteDebugProtobuf.js new file mode 100644 index 0000000..85db39e --- /dev/null +++ b/scripts/wechat4_third_party/WARemoteDebugProtobuf.js @@ -0,0 +1,12428 @@ +/*eslint-disable block-scoped-var, no-redeclare, no-control-regex, no-prototype-builtins*/ +"use strict"; + +var $protobuf = require("protobufjs"); + +// Common aliases +var $Reader = $protobuf.Reader, + $Writer = $protobuf.Writer, + $util = $protobuf.util; + +// Exported root namespace +var $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + +$root.mmbizwxadevremote = (function() { + + /** + * Namespace mmbizwxadevremote. + * @exports mmbizwxadevremote + * @namespace + */ + var mmbizwxadevremote = {}; + + mmbizwxadevremote.WARemoteDebug_DataFormat = (function() { + + /** + * Properties of a WARemoteDebug_DataFormat. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DataFormat + * @property {number} [cmd] WARemoteDebug_DataFormat cmd + * @property {string} [uuid] WARemoteDebug_DataFormat uuid + * @property {Uint8Array} [data] WARemoteDebug_DataFormat data + */ + + /** + * Constructs a new WARemoteDebug_DataFormat. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DataFormat. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DataFormat=} [properties] Properties to set + */ + function WARemoteDebug_DataFormat(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DataFormat cmd. + * @member {number}cmd + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @instance + */ + WARemoteDebug_DataFormat.prototype.cmd = 0; + + /** + * WARemoteDebug_DataFormat uuid. + * @member {string}uuid + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @instance + */ + WARemoteDebug_DataFormat.prototype.uuid = ""; + + /** + * WARemoteDebug_DataFormat data. + * @member {Uint8Array}data + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @instance + */ + WARemoteDebug_DataFormat.prototype.data = $util.newBuffer([]); + + /** + * Creates a new WARemoteDebug_DataFormat instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DataFormat=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DataFormat} WARemoteDebug_DataFormat instance + */ + WARemoteDebug_DataFormat.create = function create(properties) { + return new WARemoteDebug_DataFormat(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DataFormat message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DataFormat.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DataFormat} message WARemoteDebug_DataFormat message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DataFormat.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.cmd != null && message.hasOwnProperty("cmd")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint32(message.cmd); + if (message.uuid != null && message.hasOwnProperty("uuid")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.uuid); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32( /* id 3, wireType 2 =*/ 26).bytes(message.data); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DataFormat message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DataFormat.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DataFormat} message WARemoteDebug_DataFormat message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DataFormat.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DataFormat message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DataFormat} WARemoteDebug_DataFormat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DataFormat.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DataFormat(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.cmd = reader.uint32(); + break; + case 2: + message.uuid = reader.string(); + break; + case 3: + message.data = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_DataFormat message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DataFormat} WARemoteDebug_DataFormat + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DataFormat.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DataFormat message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DataFormat.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.cmd != null && message.hasOwnProperty("cmd")) + if (!$util.isInteger(message.cmd)) + return "cmd: integer expected"; + if (message.uuid != null && message.hasOwnProperty("uuid")) + if (!$util.isString(message.uuid)) + return "uuid: string expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DataFormat message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DataFormat} WARemoteDebug_DataFormat + */ + WARemoteDebug_DataFormat.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DataFormat) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DataFormat(); + if (object.cmd != null) + message.cmd = object.cmd >>> 0; + if (object.uuid != null) + message.uuid = String(object.uuid); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DataFormat message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DataFormat} message WARemoteDebug_DataFormat + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DataFormat.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.cmd = 0; + object.uuid = ""; + object.data = options.bytes === String ? "" : []; + } + if (message.cmd != null && message.hasOwnProperty("cmd")) + object.cmd = message.cmd; + if (message.uuid != null && message.hasOwnProperty("uuid")) + object.uuid = message.uuid; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + return object; + }; + + /** + * Converts this WARemoteDebug_DataFormat to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DataFormat + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DataFormat.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DataFormat; + })(); + + mmbizwxadevremote.WARemoteDebug_BaseReq = (function() { + + /** + * Properties of a WARemoteDebug_BaseReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_BaseReq + * @property {number} [clientVersion] WARemoteDebug_BaseReq clientVersion + */ + + /** + * Constructs a new WARemoteDebug_BaseReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_BaseReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_BaseReq=} [properties] Properties to set + */ + function WARemoteDebug_BaseReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_BaseReq clientVersion. + * @member {number}clientVersion + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @instance + */ + WARemoteDebug_BaseReq.prototype.clientVersion = 0; + + /** + * Creates a new WARemoteDebug_BaseReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_BaseReq} WARemoteDebug_BaseReq instance + */ + WARemoteDebug_BaseReq.create = function create(properties) { + return new WARemoteDebug_BaseReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_BaseReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_BaseReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseReq} message WARemoteDebug_BaseReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_BaseReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.clientVersion != null && message.hasOwnProperty("clientVersion")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint32(message.clientVersion); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_BaseReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_BaseReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseReq} message WARemoteDebug_BaseReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_BaseReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_BaseReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_BaseReq} WARemoteDebug_BaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_BaseReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_BaseReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientVersion = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_BaseReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_BaseReq} WARemoteDebug_BaseReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_BaseReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_BaseReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_BaseReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.clientVersion != null && message.hasOwnProperty("clientVersion")) + if (!$util.isInteger(message.clientVersion)) + return "clientVersion: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_BaseReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_BaseReq} WARemoteDebug_BaseReq + */ + WARemoteDebug_BaseReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_BaseReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_BaseReq(); + if (object.clientVersion != null) + message.clientVersion = object.clientVersion >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_BaseReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_BaseReq} message WARemoteDebug_BaseReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_BaseReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.clientVersion = 0; + if (message.clientVersion != null && message.hasOwnProperty("clientVersion")) + object.clientVersion = message.clientVersion; + return object; + }; + + /** + * Converts this WARemoteDebug_BaseReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_BaseReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_BaseReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_BaseReq; + })(); + + mmbizwxadevremote.WARemoteDebug_BaseResp = (function() { + + /** + * Properties of a WARemoteDebug_BaseResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_BaseResp + * @property {number} [errcode] WARemoteDebug_BaseResp errcode + * @property {string} [errmsg] WARemoteDebug_BaseResp errmsg + */ + + /** + * Constructs a new WARemoteDebug_BaseResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_BaseResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_BaseResp=} [properties] Properties to set + */ + function WARemoteDebug_BaseResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_BaseResp errcode. + * @member {number}errcode + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @instance + */ + WARemoteDebug_BaseResp.prototype.errcode = 0; + + /** + * WARemoteDebug_BaseResp errmsg. + * @member {string}errmsg + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @instance + */ + WARemoteDebug_BaseResp.prototype.errmsg = ""; + + /** + * Creates a new WARemoteDebug_BaseResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_BaseResp} WARemoteDebug_BaseResp instance + */ + WARemoteDebug_BaseResp.create = function create(properties) { + return new WARemoteDebug_BaseResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_BaseResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_BaseResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseResp} message WARemoteDebug_BaseResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_BaseResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.errcode != null && message.hasOwnProperty("errcode")) + writer.uint32( /* id 1, wireType 0 =*/ 8).int32(message.errcode); + if (message.errmsg != null && message.hasOwnProperty("errmsg")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.errmsg); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_BaseResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_BaseResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_BaseResp} message WARemoteDebug_BaseResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_BaseResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_BaseResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_BaseResp} WARemoteDebug_BaseResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_BaseResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_BaseResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.errcode = reader.int32(); + break; + case 2: + message.errmsg = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_BaseResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_BaseResp} WARemoteDebug_BaseResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_BaseResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_BaseResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_BaseResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.errcode != null && message.hasOwnProperty("errcode")) + if (!$util.isInteger(message.errcode)) + return "errcode: integer expected"; + if (message.errmsg != null && message.hasOwnProperty("errmsg")) + if (!$util.isString(message.errmsg)) + return "errmsg: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_BaseResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_BaseResp} WARemoteDebug_BaseResp + */ + WARemoteDebug_BaseResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_BaseResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_BaseResp(); + if (object.errcode != null) + message.errcode = object.errcode | 0; + if (object.errmsg != null) + message.errmsg = String(object.errmsg); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_BaseResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_BaseResp} message WARemoteDebug_BaseResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_BaseResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.errcode = 0; + object.errmsg = ""; + } + if (message.errcode != null && message.hasOwnProperty("errcode")) + object.errcode = message.errcode; + if (message.errmsg != null && message.hasOwnProperty("errmsg")) + object.errmsg = message.errmsg; + return object; + }; + + /** + * Converts this WARemoteDebug_BaseResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_BaseResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_BaseResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_BaseResp; + })(); + + mmbizwxadevremote.WARemoteDebug_CommReq = (function() { + + /** + * Properties of a WARemoteDebug_CommReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_CommReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_CommReq baseRequest + */ + + /** + * Constructs a new WARemoteDebug_CommReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_CommReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_CommReq=} [properties] Properties to set + */ + function WARemoteDebug_CommReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_CommReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @instance + */ + WARemoteDebug_CommReq.prototype.baseRequest = null; + + /** + * Creates a new WARemoteDebug_CommReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_CommReq} WARemoteDebug_CommReq instance + */ + WARemoteDebug_CommReq.create = function create(properties) { + return new WARemoteDebug_CommReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_CommReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CommReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommReq} message WARemoteDebug_CommReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CommReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_CommReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CommReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommReq} message WARemoteDebug_CommReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CommReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_CommReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_CommReq} WARemoteDebug_CommReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CommReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_CommReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_CommReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_CommReq} WARemoteDebug_CommReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CommReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_CommReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_CommReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_CommReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_CommReq} WARemoteDebug_CommReq + */ + WARemoteDebug_CommReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_CommReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_CommReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_CommReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_CommReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_CommReq} message WARemoteDebug_CommReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_CommReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseRequest = null; + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + return object; + }; + + /** + * Converts this WARemoteDebug_CommReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_CommReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_CommReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_CommReq; + })(); + + mmbizwxadevremote.WARemoteDebug_CommResp = (function() { + + /** + * Properties of a WARemoteDebug_CommResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_CommResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_CommResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_CommResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_CommResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_CommResp=} [properties] Properties to set + */ + function WARemoteDebug_CommResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_CommResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @instance + */ + WARemoteDebug_CommResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_CommResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_CommResp} WARemoteDebug_CommResp instance + */ + WARemoteDebug_CommResp.create = function create(properties) { + return new WARemoteDebug_CommResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_CommResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CommResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommResp} message WARemoteDebug_CommResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CommResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_CommResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CommResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CommResp} message WARemoteDebug_CommResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CommResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_CommResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_CommResp} WARemoteDebug_CommResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CommResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_CommResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_CommResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_CommResp} WARemoteDebug_CommResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CommResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_CommResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_CommResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_CommResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_CommResp} WARemoteDebug_CommResp + */ + WARemoteDebug_CommResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_CommResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_CommResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_CommResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_CommResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_CommResp} message WARemoteDebug_CommResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_CommResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_CommResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_CommResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_CommResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_CommResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DebugMessage = (function() { + + /** + * Properties of a WARemoteDebug_DebugMessage. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DebugMessage + * @property {number} [seq] WARemoteDebug_DebugMessage seq + * @property {number} [after] WARemoteDebug_DebugMessage after + * @property {string} [category] WARemoteDebug_DebugMessage category + * @property {Uint8Array} [data] WARemoteDebug_DebugMessage data + * @property {number} [compressAlgo] WARemoteDebug_DebugMessage compressAlgo + * @property {number} [originalSize] WARemoteDebug_DebugMessage originalSize + */ + + /** + * Constructs a new WARemoteDebug_DebugMessage. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DebugMessage. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DebugMessage=} [properties] Properties to set + */ + function WARemoteDebug_DebugMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DebugMessage seq. + * @member {number}seq + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.seq = 0; + + /** + * WARemoteDebug_DebugMessage after. + * @member {number}after + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.after = 0; + + /** + * WARemoteDebug_DebugMessage category. + * @member {string}category + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.category = ""; + + /** + * WARemoteDebug_DebugMessage data. + * @member {Uint8Array}data + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.data = $util.newBuffer([]); + + /** + * WARemoteDebug_DebugMessage compressAlgo. + * @member {number}compressAlgo + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.compressAlgo = 0; + + /** + * WARemoteDebug_DebugMessage originalSize. + * @member {number}originalSize + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + */ + WARemoteDebug_DebugMessage.prototype.originalSize = 0; + + /** + * Creates a new WARemoteDebug_DebugMessage instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DebugMessage=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DebugMessage} WARemoteDebug_DebugMessage instance + */ + WARemoteDebug_DebugMessage.create = function create(properties) { + return new WARemoteDebug_DebugMessage(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DebugMessage message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DebugMessage.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DebugMessage} message WARemoteDebug_DebugMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DebugMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.seq != null && message.hasOwnProperty("seq")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint32(message.seq); + if (message.after != null && message.hasOwnProperty("after")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.after); + if (message.category != null && message.hasOwnProperty("category")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.category); + if (message.data != null && message.hasOwnProperty("data")) + writer.uint32( /* id 4, wireType 2 =*/ 34).bytes(message.data); + if (message.compressAlgo != null && message.hasOwnProperty("compressAlgo")) + writer.uint32( /* id 5, wireType 0 =*/ 40).uint32(message.compressAlgo); + if (message.originalSize != null && message.hasOwnProperty("originalSize")) + writer.uint32( /* id 6, wireType 0 =*/ 48).uint32(message.originalSize); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DebugMessage message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DebugMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DebugMessage} message WARemoteDebug_DebugMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DebugMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DebugMessage message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DebugMessage} WARemoteDebug_DebugMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DebugMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DebugMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.seq = reader.uint32(); + break; + case 2: + message.after = reader.uint32(); + break; + case 3: + message.category = reader.string(); + break; + case 4: + message.data = reader.bytes(); + break; + case 5: + message.compressAlgo = reader.uint32(); + break; + case 6: + message.originalSize = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_DebugMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DebugMessage} WARemoteDebug_DebugMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DebugMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DebugMessage message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DebugMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.seq != null && message.hasOwnProperty("seq")) + if (!$util.isInteger(message.seq)) + return "seq: integer expected"; + if (message.after != null && message.hasOwnProperty("after")) + if (!$util.isInteger(message.after)) + return "after: integer expected"; + if (message.category != null && message.hasOwnProperty("category")) + if (!$util.isString(message.category)) + return "category: string expected"; + if (message.data != null && message.hasOwnProperty("data")) + if (!(message.data && typeof message.data.length === "number" || $util.isString(message.data))) + return "data: buffer expected"; + if (message.compressAlgo != null && message.hasOwnProperty("compressAlgo")) + if (!$util.isInteger(message.compressAlgo)) + return "compressAlgo: integer expected"; + if (message.originalSize != null && message.hasOwnProperty("originalSize")) + if (!$util.isInteger(message.originalSize)) + return "originalSize: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DebugMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DebugMessage} WARemoteDebug_DebugMessage + */ + WARemoteDebug_DebugMessage.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DebugMessage) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DebugMessage(); + if (object.seq != null) + message.seq = object.seq >>> 0; + if (object.after != null) + message.after = object.after >>> 0; + if (object.category != null) + message.category = String(object.category); + if (object.data != null) + if (typeof object.data === "string") + $util.base64.decode(object.data, message.data = $util.newBuffer($util.base64.length(object.data)), 0); + else if (object.data.length) + message.data = object.data; + if (object.compressAlgo != null) + message.compressAlgo = object.compressAlgo >>> 0; + if (object.originalSize != null) + message.originalSize = object.originalSize >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DebugMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DebugMessage} message WARemoteDebug_DebugMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DebugMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.seq = 0; + object.after = 0; + object.category = ""; + object.data = options.bytes === String ? "" : []; + object.compressAlgo = 0; + object.originalSize = 0; + } + if (message.seq != null && message.hasOwnProperty("seq")) + object.seq = message.seq; + if (message.after != null && message.hasOwnProperty("after")) + object.after = message.after; + if (message.category != null && message.hasOwnProperty("category")) + object.category = message.category; + if (message.data != null && message.hasOwnProperty("data")) + object.data = options.bytes === String ? $util.base64.encode(message.data, 0, message.data.length) : options.bytes === Array ? Array.prototype.slice.call(message.data) : message.data; + if (message.compressAlgo != null && message.hasOwnProperty("compressAlgo")) + object.compressAlgo = message.compressAlgo; + if (message.originalSize != null && message.hasOwnProperty("originalSize")) + object.originalSize = message.originalSize; + return object; + }; + + /** + * Converts this WARemoteDebug_DebugMessage to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DebugMessage + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DebugMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DebugMessage; + })(); + + mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq = (function() { + + /** + * Properties of a WARemoteDebug_SendDebugMessageReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_SendDebugMessageReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_SendDebugMessageReq baseRequest + * @property {Array.} [debugMessageList] WARemoteDebug_SendDebugMessageReq debugMessageList + * @property {number} [recvAck] WARemoteDebug_SendDebugMessageReq recvAck + */ + + /** + * Constructs a new WARemoteDebug_SendDebugMessageReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_SendDebugMessageReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageReq=} [properties] Properties to set + */ + function WARemoteDebug_SendDebugMessageReq(properties) { + this.debugMessageList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_SendDebugMessageReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @instance + */ + WARemoteDebug_SendDebugMessageReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_SendDebugMessageReq debugMessageList. + * @member {Array.}debugMessageList + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @instance + */ + WARemoteDebug_SendDebugMessageReq.prototype.debugMessageList = $util.emptyArray; + + /** + * WARemoteDebug_SendDebugMessageReq recvAck. + * @member {number}recvAck + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @instance + */ + WARemoteDebug_SendDebugMessageReq.prototype.recvAck = 0; + + /** + * Creates a new WARemoteDebug_SendDebugMessageReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq} WARemoteDebug_SendDebugMessageReq instance + */ + WARemoteDebug_SendDebugMessageReq.create = function create(properties) { + return new WARemoteDebug_SendDebugMessageReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_SendDebugMessageReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageReq} message WARemoteDebug_SendDebugMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SendDebugMessageReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.debugMessageList != null && message.debugMessageList.length) + for (var i = 0; i < message.debugMessageList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(message.debugMessageList[i], writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.recvAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_SendDebugMessageReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageReq} message WARemoteDebug_SendDebugMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SendDebugMessageReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_SendDebugMessageReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq} WARemoteDebug_SendDebugMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SendDebugMessageReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.debugMessageList && message.debugMessageList.length)) + message.debugMessageList = []; + message.debugMessageList.push($root.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(reader, reader.uint32())); + break; + case 3: + message.recvAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_SendDebugMessageReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq} WARemoteDebug_SendDebugMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SendDebugMessageReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_SendDebugMessageReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_SendDebugMessageReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.debugMessageList != null && message.hasOwnProperty("debugMessageList")) { + if (!Array.isArray(message.debugMessageList)) + return "debugMessageList: array expected"; + for (var i = 0; i < message.debugMessageList.length; ++i) { + error = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.verify(message.debugMessageList[i]); + if (error) + return "debugMessageList." + error; + } + } + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + if (!$util.isInteger(message.recvAck)) + return "recvAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_SendDebugMessageReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq} WARemoteDebug_SendDebugMessageReq + */ + WARemoteDebug_SendDebugMessageReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.debugMessageList) { + if (!Array.isArray(object.debugMessageList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.debugMessageList: array expected"); + message.debugMessageList = []; + for (var i = 0; i < object.debugMessageList.length; ++i) { + if (typeof object.debugMessageList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq.debugMessageList: object expected"); + message.debugMessageList[i] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.fromObject(object.debugMessageList[i]); + } + } + if (object.recvAck != null) + message.recvAck = object.recvAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_SendDebugMessageReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq} message WARemoteDebug_SendDebugMessageReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_SendDebugMessageReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.debugMessageList = []; + if (options.defaults) { + object.baseRequest = null; + object.recvAck = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.debugMessageList && message.debugMessageList.length) { + object.debugMessageList = []; + for (var j = 0; j < message.debugMessageList.length; ++j) + object.debugMessageList[j] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.toObject(message.debugMessageList[j], options); + } + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + object.recvAck = message.recvAck; + return object; + }; + + /** + * Converts this WARemoteDebug_SendDebugMessageReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_SendDebugMessageReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_SendDebugMessageReq; + })(); + + mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp = (function() { + + /** + * Properties of a WARemoteDebug_SendDebugMessageResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_SendDebugMessageResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_SendDebugMessageResp baseResponse + * @property {number} [sendAck] WARemoteDebug_SendDebugMessageResp sendAck + */ + + /** + * Constructs a new WARemoteDebug_SendDebugMessageResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_SendDebugMessageResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageResp=} [properties] Properties to set + */ + function WARemoteDebug_SendDebugMessageResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_SendDebugMessageResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @instance + */ + WARemoteDebug_SendDebugMessageResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_SendDebugMessageResp sendAck. + * @member {number}sendAck + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @instance + */ + WARemoteDebug_SendDebugMessageResp.prototype.sendAck = 0; + + /** + * Creates a new WARemoteDebug_SendDebugMessageResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp} WARemoteDebug_SendDebugMessageResp instance + */ + WARemoteDebug_SendDebugMessageResp.create = function create(properties) { + return new WARemoteDebug_SendDebugMessageResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_SendDebugMessageResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageResp} message WARemoteDebug_SendDebugMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SendDebugMessageResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.sendAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_SendDebugMessageResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SendDebugMessageResp} message WARemoteDebug_SendDebugMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SendDebugMessageResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_SendDebugMessageResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp} WARemoteDebug_SendDebugMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SendDebugMessageResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + message.sendAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_SendDebugMessageResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp} WARemoteDebug_SendDebugMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SendDebugMessageResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_SendDebugMessageResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_SendDebugMessageResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + if (!$util.isInteger(message.sendAck)) + return "sendAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_SendDebugMessageResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp} WARemoteDebug_SendDebugMessageResp + */ + WARemoteDebug_SendDebugMessageResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.sendAck != null) + message.sendAck = object.sendAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_SendDebugMessageResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp} message WARemoteDebug_SendDebugMessageResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_SendDebugMessageResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseResponse = null; + object.sendAck = 0; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + object.sendAck = message.sendAck; + return object; + }; + + /** + * Converts this WARemoteDebug_SendDebugMessageResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_SendDebugMessageResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_SendDebugMessageResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_SendDebugMessageResp; + })(); + + mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq = (function() { + + /** + * Properties of a WARemoteDebug_NewSendDebugMessageReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_NewSendDebugMessageReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_NewSendDebugMessageReq baseRequest + * @property {Array.} [debugMessageList] WARemoteDebug_NewSendDebugMessageReq debugMessageList + * @property {number} [recvAck] WARemoteDebug_NewSendDebugMessageReq recvAck + */ + + /** + * Constructs a new WARemoteDebug_NewSendDebugMessageReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_NewSendDebugMessageReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageReq=} [properties] Properties to set + */ + function WARemoteDebug_NewSendDebugMessageReq(properties) { + this.debugMessageList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_NewSendDebugMessageReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @instance + */ + WARemoteDebug_NewSendDebugMessageReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_NewSendDebugMessageReq debugMessageList. + * @member {Array.}debugMessageList + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @instance + */ + WARemoteDebug_NewSendDebugMessageReq.prototype.debugMessageList = $util.emptyArray; + + /** + * WARemoteDebug_NewSendDebugMessageReq recvAck. + * @member {number}recvAck + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @instance + */ + WARemoteDebug_NewSendDebugMessageReq.prototype.recvAck = 0; + + /** + * Creates a new WARemoteDebug_NewSendDebugMessageReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq} WARemoteDebug_NewSendDebugMessageReq instance + */ + WARemoteDebug_NewSendDebugMessageReq.create = function create(properties) { + return new WARemoteDebug_NewSendDebugMessageReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_NewSendDebugMessageReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageReq} message WARemoteDebug_NewSendDebugMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NewSendDebugMessageReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.debugMessageList != null && message.debugMessageList.length) + for (var i = 0; i < message.debugMessageList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(message.debugMessageList[i], writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.recvAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_NewSendDebugMessageReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageReq} message WARemoteDebug_NewSendDebugMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NewSendDebugMessageReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_NewSendDebugMessageReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq} WARemoteDebug_NewSendDebugMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NewSendDebugMessageReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.debugMessageList && message.debugMessageList.length)) + message.debugMessageList = []; + message.debugMessageList.push($root.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(reader, reader.uint32())); + break; + case 3: + message.recvAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_NewSendDebugMessageReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq} WARemoteDebug_NewSendDebugMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NewSendDebugMessageReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_NewSendDebugMessageReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_NewSendDebugMessageReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.debugMessageList != null && message.hasOwnProperty("debugMessageList")) { + if (!Array.isArray(message.debugMessageList)) + return "debugMessageList: array expected"; + for (var i = 0; i < message.debugMessageList.length; ++i) { + error = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.verify(message.debugMessageList[i]); + if (error) + return "debugMessageList." + error; + } + } + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + if (!$util.isInteger(message.recvAck)) + return "recvAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_NewSendDebugMessageReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq} WARemoteDebug_NewSendDebugMessageReq + */ + WARemoteDebug_NewSendDebugMessageReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.debugMessageList) { + if (!Array.isArray(object.debugMessageList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.debugMessageList: array expected"); + message.debugMessageList = []; + for (var i = 0; i < object.debugMessageList.length; ++i) { + if (typeof object.debugMessageList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq.debugMessageList: object expected"); + message.debugMessageList[i] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.fromObject(object.debugMessageList[i]); + } + } + if (object.recvAck != null) + message.recvAck = object.recvAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_NewSendDebugMessageReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq} message WARemoteDebug_NewSendDebugMessageReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_NewSendDebugMessageReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.debugMessageList = []; + if (options.defaults) { + object.baseRequest = null; + object.recvAck = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.debugMessageList && message.debugMessageList.length) { + object.debugMessageList = []; + for (var j = 0; j < message.debugMessageList.length; ++j) + object.debugMessageList[j] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.toObject(message.debugMessageList[j], options); + } + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + object.recvAck = message.recvAck; + return object; + }; + + /** + * Converts this WARemoteDebug_NewSendDebugMessageReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_NewSendDebugMessageReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_NewSendDebugMessageReq; + })(); + + mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp = (function() { + + /** + * Properties of a WARemoteDebug_NewSendDebugMessageResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_NewSendDebugMessageResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_NewSendDebugMessageResp baseResponse + * @property {number} [minAck] WARemoteDebug_NewSendDebugMessageResp minAck + * @property {number} [maxAck] WARemoteDebug_NewSendDebugMessageResp maxAck + */ + + /** + * Constructs a new WARemoteDebug_NewSendDebugMessageResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_NewSendDebugMessageResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageResp=} [properties] Properties to set + */ + function WARemoteDebug_NewSendDebugMessageResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_NewSendDebugMessageResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @instance + */ + WARemoteDebug_NewSendDebugMessageResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_NewSendDebugMessageResp minAck. + * @member {number}minAck + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @instance + */ + WARemoteDebug_NewSendDebugMessageResp.prototype.minAck = 0; + + /** + * WARemoteDebug_NewSendDebugMessageResp maxAck. + * @member {number}maxAck + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @instance + */ + WARemoteDebug_NewSendDebugMessageResp.prototype.maxAck = 0; + + /** + * Creates a new WARemoteDebug_NewSendDebugMessageResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp} WARemoteDebug_NewSendDebugMessageResp instance + */ + WARemoteDebug_NewSendDebugMessageResp.create = function create(properties) { + return new WARemoteDebug_NewSendDebugMessageResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_NewSendDebugMessageResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageResp} message WARemoteDebug_NewSendDebugMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NewSendDebugMessageResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.minAck != null && message.hasOwnProperty("minAck")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.minAck); + if (message.maxAck != null && message.hasOwnProperty("maxAck")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.maxAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_NewSendDebugMessageResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NewSendDebugMessageResp} message WARemoteDebug_NewSendDebugMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NewSendDebugMessageResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_NewSendDebugMessageResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp} WARemoteDebug_NewSendDebugMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NewSendDebugMessageResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + message.minAck = reader.uint32(); + break; + case 3: + message.maxAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_NewSendDebugMessageResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp} WARemoteDebug_NewSendDebugMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NewSendDebugMessageResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_NewSendDebugMessageResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_NewSendDebugMessageResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.minAck != null && message.hasOwnProperty("minAck")) + if (!$util.isInteger(message.minAck)) + return "minAck: integer expected"; + if (message.maxAck != null && message.hasOwnProperty("maxAck")) + if (!$util.isInteger(message.maxAck)) + return "maxAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_NewSendDebugMessageResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp} WARemoteDebug_NewSendDebugMessageResp + */ + WARemoteDebug_NewSendDebugMessageResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.minAck != null) + message.minAck = object.minAck >>> 0; + if (object.maxAck != null) + message.maxAck = object.maxAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_NewSendDebugMessageResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp} message WARemoteDebug_NewSendDebugMessageResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_NewSendDebugMessageResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseResponse = null; + object.minAck = 0; + object.maxAck = 0; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.minAck != null && message.hasOwnProperty("minAck")) + object.minAck = message.minAck; + if (message.maxAck != null && message.hasOwnProperty("maxAck")) + object.maxAck = message.maxAck; + return object; + }; + + /** + * Converts this WARemoteDebug_NewSendDebugMessageResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_NewSendDebugMessageResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_NewSendDebugMessageResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_NewSendDebugMessageResp; + })(); + + mmbizwxadevremote.WARemoteDebug_MessageNotify = (function() { + + /** + * Properties of a WARemoteDebug_MessageNotify. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_MessageNotify + * @property {Array.} [debugMessageList] WARemoteDebug_MessageNotify debugMessageList + */ + + /** + * Constructs a new WARemoteDebug_MessageNotify. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_MessageNotify. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotify=} [properties] Properties to set + */ + function WARemoteDebug_MessageNotify(properties) { + this.debugMessageList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_MessageNotify debugMessageList. + * @member {Array.}debugMessageList + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @instance + */ + WARemoteDebug_MessageNotify.prototype.debugMessageList = $util.emptyArray; + + /** + * Creates a new WARemoteDebug_MessageNotify instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotify=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotify} WARemoteDebug_MessageNotify instance + */ + WARemoteDebug_MessageNotify.create = function create(properties) { + return new WARemoteDebug_MessageNotify(properties); + }; + + /** + * Encodes the specified WARemoteDebug_MessageNotify message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MessageNotify.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotify} message WARemoteDebug_MessageNotify message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MessageNotify.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.debugMessageList != null && message.debugMessageList.length) + for (var i = 0; i < message.debugMessageList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(message.debugMessageList[i], writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_MessageNotify message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MessageNotify.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotify} message WARemoteDebug_MessageNotify message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MessageNotify.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_MessageNotify message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotify} WARemoteDebug_MessageNotify + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MessageNotify.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_MessageNotify(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.debugMessageList && message.debugMessageList.length)) + message.debugMessageList = []; + message.debugMessageList.push($root.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_MessageNotify message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotify} WARemoteDebug_MessageNotify + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MessageNotify.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_MessageNotify message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_MessageNotify.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.debugMessageList != null && message.hasOwnProperty("debugMessageList")) { + if (!Array.isArray(message.debugMessageList)) + return "debugMessageList: array expected"; + for (var i = 0; i < message.debugMessageList.length; ++i) { + var error = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.verify(message.debugMessageList[i]); + if (error) + return "debugMessageList." + error; + } + } + return null; + }; + + /** + * Creates a WARemoteDebug_MessageNotify message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotify} WARemoteDebug_MessageNotify + */ + WARemoteDebug_MessageNotify.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_MessageNotify) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_MessageNotify(); + if (object.debugMessageList) { + if (!Array.isArray(object.debugMessageList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_MessageNotify.debugMessageList: array expected"); + message.debugMessageList = []; + for (var i = 0; i < object.debugMessageList.length; ++i) { + if (typeof object.debugMessageList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_MessageNotify.debugMessageList: object expected"); + message.debugMessageList[i] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.fromObject(object.debugMessageList[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_MessageNotify message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @static + * @param {mmbizwxadevremote.WARemoteDebug_MessageNotify} message WARemoteDebug_MessageNotify + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_MessageNotify.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.debugMessageList = []; + if (message.debugMessageList && message.debugMessageList.length) { + object.debugMessageList = []; + for (var j = 0; j < message.debugMessageList.length; ++j) + object.debugMessageList[j] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.toObject(message.debugMessageList[j], options); + } + return object; + }; + + /** + * Converts this WARemoteDebug_MessageNotify to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotify + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_MessageNotify.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_MessageNotify; + })(); + + mmbizwxadevremote.WARemoteDebug_MessageNotifyResp = (function() { + + /** + * Properties of a WARemoteDebug_MessageNotifyResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_MessageNotifyResp + * @property {number} [recvAck] WARemoteDebug_MessageNotifyResp recvAck + */ + + /** + * Constructs a new WARemoteDebug_MessageNotifyResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_MessageNotifyResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotifyResp=} [properties] Properties to set + */ + function WARemoteDebug_MessageNotifyResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_MessageNotifyResp recvAck. + * @member {number}recvAck + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @instance + */ + WARemoteDebug_MessageNotifyResp.prototype.recvAck = 0; + + /** + * Creates a new WARemoteDebug_MessageNotifyResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotifyResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotifyResp} WARemoteDebug_MessageNotifyResp instance + */ + WARemoteDebug_MessageNotifyResp.create = function create(properties) { + return new WARemoteDebug_MessageNotifyResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_MessageNotifyResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MessageNotifyResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotifyResp} message WARemoteDebug_MessageNotifyResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MessageNotifyResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint32(message.recvAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_MessageNotifyResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MessageNotifyResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MessageNotifyResp} message WARemoteDebug_MessageNotifyResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MessageNotifyResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_MessageNotifyResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotifyResp} WARemoteDebug_MessageNotifyResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MessageNotifyResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_MessageNotifyResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.recvAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_MessageNotifyResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotifyResp} WARemoteDebug_MessageNotifyResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MessageNotifyResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_MessageNotifyResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_MessageNotifyResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + if (!$util.isInteger(message.recvAck)) + return "recvAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_MessageNotifyResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_MessageNotifyResp} WARemoteDebug_MessageNotifyResp + */ + WARemoteDebug_MessageNotifyResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_MessageNotifyResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_MessageNotifyResp(); + if (object.recvAck != null) + message.recvAck = object.recvAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_MessageNotifyResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_MessageNotifyResp} message WARemoteDebug_MessageNotifyResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_MessageNotifyResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.recvAck = 0; + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + object.recvAck = message.recvAck; + return object; + }; + + /** + * Converts this WARemoteDebug_MessageNotifyResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_MessageNotifyResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_MessageNotifyResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_MessageNotifyResp; + })(); + + mmbizwxadevremote.WARemoteDebug_EventNotify = (function() { + + /** + * Properties of a WARemoteDebug_EventNotify. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_EventNotify + */ + + /** + * Constructs a new WARemoteDebug_EventNotify. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_EventNotify. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotify=} [properties] Properties to set + */ + function WARemoteDebug_EventNotify(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new WARemoteDebug_EventNotify instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotify=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotify} WARemoteDebug_EventNotify instance + */ + WARemoteDebug_EventNotify.create = function create(properties) { + return new WARemoteDebug_EventNotify(properties); + }; + + /** + * Encodes the specified WARemoteDebug_EventNotify message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EventNotify.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotify} message WARemoteDebug_EventNotify message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EventNotify.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_EventNotify message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EventNotify.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotify} message WARemoteDebug_EventNotify message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EventNotify.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_EventNotify message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotify} WARemoteDebug_EventNotify + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EventNotify.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_EventNotify(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_EventNotify message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotify} WARemoteDebug_EventNotify + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EventNotify.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_EventNotify message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_EventNotify.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_EventNotify message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotify} WARemoteDebug_EventNotify + */ + WARemoteDebug_EventNotify.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_EventNotify) + return object; + return new $root.mmbizwxadevremote.WARemoteDebug_EventNotify(); + }; + + /** + * Creates a plain object from a WARemoteDebug_EventNotify message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @static + * @param {mmbizwxadevremote.WARemoteDebug_EventNotify} message WARemoteDebug_EventNotify + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_EventNotify.toObject = function toObject() { + return {}; + }; + + /** + * Converts this WARemoteDebug_EventNotify to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotify + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_EventNotify.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_EventNotify; + })(); + + mmbizwxadevremote.WARemoteDebug_EventNotifyResp = (function() { + + /** + * Properties of a WARemoteDebug_EventNotifyResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_EventNotifyResp + */ + + /** + * Constructs a new WARemoteDebug_EventNotifyResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_EventNotifyResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotifyResp=} [properties] Properties to set + */ + function WARemoteDebug_EventNotifyResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new WARemoteDebug_EventNotifyResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotifyResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotifyResp} WARemoteDebug_EventNotifyResp instance + */ + WARemoteDebug_EventNotifyResp.create = function create(properties) { + return new WARemoteDebug_EventNotifyResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_EventNotifyResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EventNotifyResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotifyResp} message WARemoteDebug_EventNotifyResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EventNotifyResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_EventNotifyResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EventNotifyResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EventNotifyResp} message WARemoteDebug_EventNotifyResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EventNotifyResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_EventNotifyResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotifyResp} WARemoteDebug_EventNotifyResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EventNotifyResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_EventNotifyResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_EventNotifyResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotifyResp} WARemoteDebug_EventNotifyResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EventNotifyResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_EventNotifyResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_EventNotifyResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_EventNotifyResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_EventNotifyResp} WARemoteDebug_EventNotifyResp + */ + WARemoteDebug_EventNotifyResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_EventNotifyResp) + return object; + return new $root.mmbizwxadevremote.WARemoteDebug_EventNotifyResp(); + }; + + /** + * Creates a plain object from a WARemoteDebug_EventNotifyResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_EventNotifyResp} message WARemoteDebug_EventNotifyResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_EventNotifyResp.toObject = function toObject() { + return {}; + }; + + /** + * Converts this WARemoteDebug_EventNotifyResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_EventNotifyResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_EventNotifyResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_EventNotifyResp; + })(); + + mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq = (function() { + + /** + * Properties of a WARemoteDebug_WxHeartBeatReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxHeartBeatReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_WxHeartBeatReq baseRequest + * @property {number} [recvAck] WARemoteDebug_WxHeartBeatReq recvAck + */ + + /** + * Constructs a new WARemoteDebug_WxHeartBeatReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxHeartBeatReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatReq=} [properties] Properties to set + */ + function WARemoteDebug_WxHeartBeatReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxHeartBeatReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @instance + */ + WARemoteDebug_WxHeartBeatReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_WxHeartBeatReq recvAck. + * @member {number}recvAck + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @instance + */ + WARemoteDebug_WxHeartBeatReq.prototype.recvAck = 0; + + /** + * Creates a new WARemoteDebug_WxHeartBeatReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq} WARemoteDebug_WxHeartBeatReq instance + */ + WARemoteDebug_WxHeartBeatReq.create = function create(properties) { + return new WARemoteDebug_WxHeartBeatReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxHeartBeatReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatReq} message WARemoteDebug_WxHeartBeatReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxHeartBeatReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.recvAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxHeartBeatReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatReq} message WARemoteDebug_WxHeartBeatReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxHeartBeatReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxHeartBeatReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq} WARemoteDebug_WxHeartBeatReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxHeartBeatReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.recvAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxHeartBeatReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq} WARemoteDebug_WxHeartBeatReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxHeartBeatReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxHeartBeatReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxHeartBeatReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + if (!$util.isInteger(message.recvAck)) + return "recvAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_WxHeartBeatReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq} WARemoteDebug_WxHeartBeatReq + */ + WARemoteDebug_WxHeartBeatReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.recvAck != null) + message.recvAck = object.recvAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxHeartBeatReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq} message WARemoteDebug_WxHeartBeatReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxHeartBeatReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.recvAck = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + object.recvAck = message.recvAck; + return object; + }; + + /** + * Converts this WARemoteDebug_WxHeartBeatReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxHeartBeatReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxHeartBeatReq; + })(); + + mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp = (function() { + + /** + * Properties of a WARemoteDebug_WxHeartBeatResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxHeartBeatResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_WxHeartBeatResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_WxHeartBeatResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxHeartBeatResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatResp=} [properties] Properties to set + */ + function WARemoteDebug_WxHeartBeatResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxHeartBeatResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @instance + */ + WARemoteDebug_WxHeartBeatResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_WxHeartBeatResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp} WARemoteDebug_WxHeartBeatResp instance + */ + WARemoteDebug_WxHeartBeatResp.create = function create(properties) { + return new WARemoteDebug_WxHeartBeatResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxHeartBeatResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatResp} message WARemoteDebug_WxHeartBeatResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxHeartBeatResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxHeartBeatResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxHeartBeatResp} message WARemoteDebug_WxHeartBeatResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxHeartBeatResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxHeartBeatResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp} WARemoteDebug_WxHeartBeatResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxHeartBeatResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxHeartBeatResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp} WARemoteDebug_WxHeartBeatResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxHeartBeatResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxHeartBeatResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxHeartBeatResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_WxHeartBeatResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp} WARemoteDebug_WxHeartBeatResp + */ + WARemoteDebug_WxHeartBeatResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxHeartBeatResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp} message WARemoteDebug_WxHeartBeatResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxHeartBeatResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_WxHeartBeatResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxHeartBeatResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxHeartBeatResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxHeartBeatResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq = (function() { + + /** + * Properties of a WARemoteDebug_DevHeartBeatReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevHeartBeatReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_DevHeartBeatReq baseRequest + * @property {number} [recvAck] WARemoteDebug_DevHeartBeatReq recvAck + */ + + /** + * Constructs a new WARemoteDebug_DevHeartBeatReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevHeartBeatReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatReq=} [properties] Properties to set + */ + function WARemoteDebug_DevHeartBeatReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevHeartBeatReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @instance + */ + WARemoteDebug_DevHeartBeatReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_DevHeartBeatReq recvAck. + * @member {number}recvAck + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @instance + */ + WARemoteDebug_DevHeartBeatReq.prototype.recvAck = 0; + + /** + * Creates a new WARemoteDebug_DevHeartBeatReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq} WARemoteDebug_DevHeartBeatReq instance + */ + WARemoteDebug_DevHeartBeatReq.create = function create(properties) { + return new WARemoteDebug_DevHeartBeatReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevHeartBeatReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatReq} message WARemoteDebug_DevHeartBeatReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevHeartBeatReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.recvAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevHeartBeatReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatReq} message WARemoteDebug_DevHeartBeatReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevHeartBeatReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevHeartBeatReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq} WARemoteDebug_DevHeartBeatReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevHeartBeatReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.recvAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevHeartBeatReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq} WARemoteDebug_DevHeartBeatReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevHeartBeatReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevHeartBeatReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevHeartBeatReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + if (!$util.isInteger(message.recvAck)) + return "recvAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DevHeartBeatReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq} WARemoteDebug_DevHeartBeatReq + */ + WARemoteDebug_DevHeartBeatReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.recvAck != null) + message.recvAck = object.recvAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevHeartBeatReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq} message WARemoteDebug_DevHeartBeatReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevHeartBeatReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.recvAck = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.recvAck != null && message.hasOwnProperty("recvAck")) + object.recvAck = message.recvAck; + return object; + }; + + /** + * Converts this WARemoteDebug_DevHeartBeatReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevHeartBeatReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevHeartBeatReq; + })(); + + mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp = (function() { + + /** + * Properties of a WARemoteDebug_DevHeartBeatResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevHeartBeatResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_DevHeartBeatResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_DevHeartBeatResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevHeartBeatResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatResp=} [properties] Properties to set + */ + function WARemoteDebug_DevHeartBeatResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevHeartBeatResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @instance + */ + WARemoteDebug_DevHeartBeatResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_DevHeartBeatResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp} WARemoteDebug_DevHeartBeatResp instance + */ + WARemoteDebug_DevHeartBeatResp.create = function create(properties) { + return new WARemoteDebug_DevHeartBeatResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevHeartBeatResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatResp} message WARemoteDebug_DevHeartBeatResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevHeartBeatResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevHeartBeatResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevHeartBeatResp} message WARemoteDebug_DevHeartBeatResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevHeartBeatResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevHeartBeatResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp} WARemoteDebug_DevHeartBeatResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevHeartBeatResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevHeartBeatResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp} WARemoteDebug_DevHeartBeatResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevHeartBeatResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevHeartBeatResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevHeartBeatResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_DevHeartBeatResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp} WARemoteDebug_DevHeartBeatResp + */ + WARemoteDebug_DevHeartBeatResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevHeartBeatResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp} message WARemoteDebug_DevHeartBeatResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevHeartBeatResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_DevHeartBeatResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevHeartBeatResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevHeartBeatResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevHeartBeatResp; + })(); + + mmbizwxadevremote.WARemoteDebug_RoomInfo = (function() { + + /** + * Properties of a WARemoteDebug_RoomInfo. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_RoomInfo + * @property {boolean} [joinRoom] WARemoteDebug_RoomInfo joinRoom + * @property {string} [roomId] WARemoteDebug_RoomInfo roomId + * @property {string} [originalMd5] WARemoteDebug_RoomInfo originalMd5 + * @property {number} [roomStatus] WARemoteDebug_RoomInfo roomStatus + * @property {number} [wxConnStatus] WARemoteDebug_RoomInfo wxConnStatus + * @property {number} [devConnStatus] WARemoteDebug_RoomInfo devConnStatus + */ + + /** + * Constructs a new WARemoteDebug_RoomInfo. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_RoomInfo. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_RoomInfo=} [properties] Properties to set + */ + function WARemoteDebug_RoomInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_RoomInfo joinRoom. + * @member {boolean}joinRoom + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.joinRoom = false; + + /** + * WARemoteDebug_RoomInfo roomId. + * @member {string}roomId + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.roomId = ""; + + /** + * WARemoteDebug_RoomInfo originalMd5. + * @member {string}originalMd5 + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.originalMd5 = ""; + + /** + * WARemoteDebug_RoomInfo roomStatus. + * @member {number}roomStatus + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.roomStatus = 0; + + /** + * WARemoteDebug_RoomInfo wxConnStatus. + * @member {number}wxConnStatus + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.wxConnStatus = 0; + + /** + * WARemoteDebug_RoomInfo devConnStatus. + * @member {number}devConnStatus + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + */ + WARemoteDebug_RoomInfo.prototype.devConnStatus = 0; + + /** + * Creates a new WARemoteDebug_RoomInfo instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RoomInfo=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_RoomInfo} WARemoteDebug_RoomInfo instance + */ + WARemoteDebug_RoomInfo.create = function create(properties) { + return new WARemoteDebug_RoomInfo(properties); + }; + + /** + * Encodes the specified WARemoteDebug_RoomInfo message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RoomInfo.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RoomInfo} message WARemoteDebug_RoomInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RoomInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.joinRoom != null && message.hasOwnProperty("joinRoom")) + writer.uint32( /* id 1, wireType 0 =*/ 8).bool(message.joinRoom); + if (message.roomId != null && message.hasOwnProperty("roomId")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.roomId); + if (message.originalMd5 != null && message.hasOwnProperty("originalMd5")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.originalMd5); + if (message.roomStatus != null && message.hasOwnProperty("roomStatus")) + writer.uint32( /* id 4, wireType 0 =*/ 32).uint32(message.roomStatus); + if (message.wxConnStatus != null && message.hasOwnProperty("wxConnStatus")) + writer.uint32( /* id 5, wireType 0 =*/ 40).uint32(message.wxConnStatus); + if (message.devConnStatus != null && message.hasOwnProperty("devConnStatus")) + writer.uint32( /* id 6, wireType 0 =*/ 48).uint32(message.devConnStatus); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_RoomInfo message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RoomInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RoomInfo} message WARemoteDebug_RoomInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RoomInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_RoomInfo message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_RoomInfo} WARemoteDebug_RoomInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RoomInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_RoomInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.joinRoom = reader.bool(); + break; + case 2: + message.roomId = reader.string(); + break; + case 3: + message.originalMd5 = reader.string(); + break; + case 4: + message.roomStatus = reader.uint32(); + break; + case 5: + message.wxConnStatus = reader.uint32(); + break; + case 6: + message.devConnStatus = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_RoomInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_RoomInfo} WARemoteDebug_RoomInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RoomInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_RoomInfo message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_RoomInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.joinRoom != null && message.hasOwnProperty("joinRoom")) + if (typeof message.joinRoom !== "boolean") + return "joinRoom: boolean expected"; + if (message.roomId != null && message.hasOwnProperty("roomId")) + if (!$util.isString(message.roomId)) + return "roomId: string expected"; + if (message.originalMd5 != null && message.hasOwnProperty("originalMd5")) + if (!$util.isString(message.originalMd5)) + return "originalMd5: string expected"; + if (message.roomStatus != null && message.hasOwnProperty("roomStatus")) + if (!$util.isInteger(message.roomStatus)) + return "roomStatus: integer expected"; + if (message.wxConnStatus != null && message.hasOwnProperty("wxConnStatus")) + if (!$util.isInteger(message.wxConnStatus)) + return "wxConnStatus: integer expected"; + if (message.devConnStatus != null && message.hasOwnProperty("devConnStatus")) + if (!$util.isInteger(message.devConnStatus)) + return "devConnStatus: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_RoomInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_RoomInfo} WARemoteDebug_RoomInfo + */ + WARemoteDebug_RoomInfo.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_RoomInfo) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_RoomInfo(); + if (object.joinRoom != null) + message.joinRoom = Boolean(object.joinRoom); + if (object.roomId != null) + message.roomId = String(object.roomId); + if (object.originalMd5 != null) + message.originalMd5 = String(object.originalMd5); + if (object.roomStatus != null) + message.roomStatus = object.roomStatus >>> 0; + if (object.wxConnStatus != null) + message.wxConnStatus = object.wxConnStatus >>> 0; + if (object.devConnStatus != null) + message.devConnStatus = object.devConnStatus >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_RoomInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @static + * @param {mmbizwxadevremote.WARemoteDebug_RoomInfo} message WARemoteDebug_RoomInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_RoomInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.joinRoom = false; + object.roomId = ""; + object.originalMd5 = ""; + object.roomStatus = 0; + object.wxConnStatus = 0; + object.devConnStatus = 0; + } + if (message.joinRoom != null && message.hasOwnProperty("joinRoom")) + object.joinRoom = message.joinRoom; + if (message.roomId != null && message.hasOwnProperty("roomId")) + object.roomId = message.roomId; + if (message.originalMd5 != null && message.hasOwnProperty("originalMd5")) + object.originalMd5 = message.originalMd5; + if (message.roomStatus != null && message.hasOwnProperty("roomStatus")) + object.roomStatus = message.roomStatus; + if (message.wxConnStatus != null && message.hasOwnProperty("wxConnStatus")) + object.wxConnStatus = message.wxConnStatus; + if (message.devConnStatus != null && message.hasOwnProperty("devConnStatus")) + object.devConnStatus = message.devConnStatus; + return object; + }; + + /** + * Converts this WARemoteDebug_RoomInfo to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_RoomInfo + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_RoomInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_RoomInfo; + })(); + + mmbizwxadevremote.WARemoteDebug_WxLoginReq = (function() { + + /** + * Properties of a WARemoteDebug_WxLoginReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxLoginReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_WxLoginReq baseRequest + * @property {string} [loginTicket] WARemoteDebug_WxLoginReq loginTicket + */ + + /** + * Constructs a new WARemoteDebug_WxLoginReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxLoginReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginReq=} [properties] Properties to set + */ + function WARemoteDebug_WxLoginReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxLoginReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @instance + */ + WARemoteDebug_WxLoginReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_WxLoginReq loginTicket. + * @member {string}loginTicket + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @instance + */ + WARemoteDebug_WxLoginReq.prototype.loginTicket = ""; + + /** + * Creates a new WARemoteDebug_WxLoginReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginReq} WARemoteDebug_WxLoginReq instance + */ + WARemoteDebug_WxLoginReq.create = function create(properties) { + return new WARemoteDebug_WxLoginReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxLoginReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxLoginReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginReq} message WARemoteDebug_WxLoginReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxLoginReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.loginTicket != null && message.hasOwnProperty("loginTicket")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.loginTicket); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxLoginReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxLoginReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginReq} message WARemoteDebug_WxLoginReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxLoginReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxLoginReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginReq} WARemoteDebug_WxLoginReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxLoginReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxLoginReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.loginTicket = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxLoginReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginReq} WARemoteDebug_WxLoginReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxLoginReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxLoginReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxLoginReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.loginTicket != null && message.hasOwnProperty("loginTicket")) + if (!$util.isString(message.loginTicket)) + return "loginTicket: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_WxLoginReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginReq} WARemoteDebug_WxLoginReq + */ + WARemoteDebug_WxLoginReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxLoginReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxLoginReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxLoginReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.loginTicket != null) + message.loginTicket = String(object.loginTicket); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxLoginReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxLoginReq} message WARemoteDebug_WxLoginReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxLoginReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.loginTicket = ""; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.loginTicket != null && message.hasOwnProperty("loginTicket")) + object.loginTicket = message.loginTicket; + return object; + }; + + /** + * Converts this WARemoteDebug_WxLoginReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxLoginReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxLoginReq; + })(); + + mmbizwxadevremote.WARemoteDebug_WxLoginResp = (function() { + + /** + * Properties of a WARemoteDebug_WxLoginResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxLoginResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_WxLoginResp baseResponse + * @property {mmbizwxadevremote.IWARemoteDebug_RoomInfo} [roomInfo] WARemoteDebug_WxLoginResp roomInfo + */ + + /** + * Constructs a new WARemoteDebug_WxLoginResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxLoginResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginResp=} [properties] Properties to set + */ + function WARemoteDebug_WxLoginResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxLoginResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @instance + */ + WARemoteDebug_WxLoginResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_WxLoginResp roomInfo. + * @member {(mmbizwxadevremote.IWARemoteDebug_RoomInfo|null|undefined)}roomInfo + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @instance + */ + WARemoteDebug_WxLoginResp.prototype.roomInfo = null; + + /** + * Creates a new WARemoteDebug_WxLoginResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginResp} WARemoteDebug_WxLoginResp instance + */ + WARemoteDebug_WxLoginResp.create = function create(properties) { + return new WARemoteDebug_WxLoginResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxLoginResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxLoginResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginResp} message WARemoteDebug_WxLoginResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxLoginResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) + $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.encode(message.roomInfo, writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxLoginResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxLoginResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxLoginResp} message WARemoteDebug_WxLoginResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxLoginResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxLoginResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginResp} WARemoteDebug_WxLoginResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxLoginResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxLoginResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + message.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxLoginResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginResp} WARemoteDebug_WxLoginResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxLoginResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxLoginResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxLoginResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) { + error = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.verify(message.roomInfo); + if (error) + return "roomInfo." + error; + } + return null; + }; + + /** + * Creates a WARemoteDebug_WxLoginResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxLoginResp} WARemoteDebug_WxLoginResp + */ + WARemoteDebug_WxLoginResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxLoginResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxLoginResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxLoginResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.roomInfo != null) { + if (typeof object.roomInfo !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxLoginResp.roomInfo: object expected"); + message.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.fromObject(object.roomInfo); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxLoginResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxLoginResp} message WARemoteDebug_WxLoginResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxLoginResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseResponse = null; + object.roomInfo = null; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) + object.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.toObject(message.roomInfo, options); + return object; + }; + + /** + * Converts this WARemoteDebug_WxLoginResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxLoginResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxLoginResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxLoginResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DevLoginReq = (function() { + + /** + * Properties of a WARemoteDebug_DevLoginReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevLoginReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_DevLoginReq baseRequest + * @property {string} [newticket] WARemoteDebug_DevLoginReq newticket + * @property {number} [autodev] WARemoteDebug_DevLoginReq autodev + */ + + /** + * Constructs a new WARemoteDebug_DevLoginReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevLoginReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginReq=} [properties] Properties to set + */ + function WARemoteDebug_DevLoginReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevLoginReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @instance + */ + WARemoteDebug_DevLoginReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_DevLoginReq newticket. + * @member {string}newticket + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @instance + */ + WARemoteDebug_DevLoginReq.prototype.newticket = ""; + + /** + * WARemoteDebug_DevLoginReq autodev. + * @member {number}autodev + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @instance + */ + WARemoteDebug_DevLoginReq.prototype.autodev = 0; + + /** + * Creates a new WARemoteDebug_DevLoginReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginReq} WARemoteDebug_DevLoginReq instance + */ + WARemoteDebug_DevLoginReq.create = function create(properties) { + return new WARemoteDebug_DevLoginReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevLoginReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevLoginReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginReq} message WARemoteDebug_DevLoginReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevLoginReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.newticket != null && message.hasOwnProperty("newticket")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.newticket); + if (message.autodev != null && message.hasOwnProperty("autodev")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.autodev); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevLoginReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevLoginReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginReq} message WARemoteDebug_DevLoginReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevLoginReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevLoginReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginReq} WARemoteDebug_DevLoginReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevLoginReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevLoginReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.newticket = reader.string(); + break; + case 3: + message.autodev = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevLoginReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginReq} WARemoteDebug_DevLoginReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevLoginReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevLoginReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevLoginReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.newticket != null && message.hasOwnProperty("newticket")) + if (!$util.isString(message.newticket)) + return "newticket: string expected"; + if (message.autodev != null && message.hasOwnProperty("autodev")) + if (!$util.isInteger(message.autodev)) + return "autodev: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DevLoginReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginReq} WARemoteDebug_DevLoginReq + */ + WARemoteDebug_DevLoginReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevLoginReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevLoginReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevLoginReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.newticket != null) + message.newticket = String(object.newticket); + if (object.autodev != null) + message.autodev = object.autodev >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevLoginReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevLoginReq} message WARemoteDebug_DevLoginReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevLoginReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.newticket = ""; + object.autodev = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.newticket != null && message.hasOwnProperty("newticket")) + object.newticket = message.newticket; + if (message.autodev != null && message.hasOwnProperty("autodev")) + object.autodev = message.autodev; + return object; + }; + + /** + * Converts this WARemoteDebug_DevLoginReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevLoginReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevLoginReq; + })(); + + mmbizwxadevremote.WARemoteDebug_DevLoginResp = (function() { + + /** + * Properties of a WARemoteDebug_DevLoginResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevLoginResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_DevLoginResp baseResponse + * @property {mmbizwxadevremote.IWARemoteDebug_RoomInfo} [roomInfo] WARemoteDebug_DevLoginResp roomInfo + */ + + /** + * Constructs a new WARemoteDebug_DevLoginResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevLoginResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginResp=} [properties] Properties to set + */ + function WARemoteDebug_DevLoginResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevLoginResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @instance + */ + WARemoteDebug_DevLoginResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_DevLoginResp roomInfo. + * @member {(mmbizwxadevremote.IWARemoteDebug_RoomInfo|null|undefined)}roomInfo + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @instance + */ + WARemoteDebug_DevLoginResp.prototype.roomInfo = null; + + /** + * Creates a new WARemoteDebug_DevLoginResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginResp} WARemoteDebug_DevLoginResp instance + */ + WARemoteDebug_DevLoginResp.create = function create(properties) { + return new WARemoteDebug_DevLoginResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevLoginResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevLoginResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginResp} message WARemoteDebug_DevLoginResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevLoginResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) + $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.encode(message.roomInfo, writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevLoginResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevLoginResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevLoginResp} message WARemoteDebug_DevLoginResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevLoginResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevLoginResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginResp} WARemoteDebug_DevLoginResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevLoginResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevLoginResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + message.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevLoginResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginResp} WARemoteDebug_DevLoginResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevLoginResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevLoginResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevLoginResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) { + error = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.verify(message.roomInfo); + if (error) + return "roomInfo." + error; + } + return null; + }; + + /** + * Creates a WARemoteDebug_DevLoginResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevLoginResp} WARemoteDebug_DevLoginResp + */ + WARemoteDebug_DevLoginResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevLoginResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevLoginResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevLoginResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.roomInfo != null) { + if (typeof object.roomInfo !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevLoginResp.roomInfo: object expected"); + message.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.fromObject(object.roomInfo); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevLoginResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevLoginResp} message WARemoteDebug_DevLoginResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevLoginResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseResponse = null; + object.roomInfo = null; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.roomInfo != null && message.hasOwnProperty("roomInfo")) + object.roomInfo = $root.mmbizwxadevremote.WARemoteDebug_RoomInfo.toObject(message.roomInfo, options); + return object; + }; + + /** + * Converts this WARemoteDebug_DevLoginResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevLoginResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevLoginResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevLoginResp; + })(); + + mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq = (function() { + + /** + * Properties of a WARemoteDebug_WxJoinRoomReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxJoinRoomReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_WxJoinRoomReq baseRequest + * @property {string} [username] WARemoteDebug_WxJoinRoomReq username + * @property {string} [roomId] WARemoteDebug_WxJoinRoomReq roomId + * @property {string} [wxpkgInfo] WARemoteDebug_WxJoinRoomReq wxpkgInfo + */ + + /** + * Constructs a new WARemoteDebug_WxJoinRoomReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxJoinRoomReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomReq=} [properties] Properties to set + */ + function WARemoteDebug_WxJoinRoomReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxJoinRoomReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @instance + */ + WARemoteDebug_WxJoinRoomReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_WxJoinRoomReq username. + * @member {string}username + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @instance + */ + WARemoteDebug_WxJoinRoomReq.prototype.username = ""; + + /** + * WARemoteDebug_WxJoinRoomReq roomId. + * @member {string}roomId + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @instance + */ + WARemoteDebug_WxJoinRoomReq.prototype.roomId = ""; + + /** + * WARemoteDebug_WxJoinRoomReq wxpkgInfo. + * @member {string}wxpkgInfo + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @instance + */ + WARemoteDebug_WxJoinRoomReq.prototype.wxpkgInfo = ""; + + /** + * Creates a new WARemoteDebug_WxJoinRoomReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq} WARemoteDebug_WxJoinRoomReq instance + */ + WARemoteDebug_WxJoinRoomReq.create = function create(properties) { + return new WARemoteDebug_WxJoinRoomReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxJoinRoomReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomReq} message WARemoteDebug_WxJoinRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxJoinRoomReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.username != null && message.hasOwnProperty("username")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.username); + if (message.roomId != null && message.hasOwnProperty("roomId")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.roomId); + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + writer.uint32( /* id 4, wireType 2 =*/ 34).string(message.wxpkgInfo); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxJoinRoomReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomReq} message WARemoteDebug_WxJoinRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxJoinRoomReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxJoinRoomReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq} WARemoteDebug_WxJoinRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxJoinRoomReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.username = reader.string(); + break; + case 3: + message.roomId = reader.string(); + break; + case 4: + message.wxpkgInfo = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxJoinRoomReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq} WARemoteDebug_WxJoinRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxJoinRoomReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxJoinRoomReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxJoinRoomReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.username != null && message.hasOwnProperty("username")) + if (!$util.isString(message.username)) + return "username: string expected"; + if (message.roomId != null && message.hasOwnProperty("roomId")) + if (!$util.isString(message.roomId)) + return "roomId: string expected"; + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + if (!$util.isString(message.wxpkgInfo)) + return "wxpkgInfo: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_WxJoinRoomReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq} WARemoteDebug_WxJoinRoomReq + */ + WARemoteDebug_WxJoinRoomReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.username != null) + message.username = String(object.username); + if (object.roomId != null) + message.roomId = String(object.roomId); + if (object.wxpkgInfo != null) + message.wxpkgInfo = String(object.wxpkgInfo); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxJoinRoomReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq} message WARemoteDebug_WxJoinRoomReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxJoinRoomReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.username = ""; + object.roomId = ""; + object.wxpkgInfo = ""; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.username != null && message.hasOwnProperty("username")) + object.username = message.username; + if (message.roomId != null && message.hasOwnProperty("roomId")) + object.roomId = message.roomId; + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + object.wxpkgInfo = message.wxpkgInfo; + return object; + }; + + /** + * Converts this WARemoteDebug_WxJoinRoomReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxJoinRoomReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxJoinRoomReq; + })(); + + mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp = (function() { + + /** + * Properties of a WARemoteDebug_WxJoinRoomResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxJoinRoomResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_WxJoinRoomResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_WxJoinRoomResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxJoinRoomResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomResp=} [properties] Properties to set + */ + function WARemoteDebug_WxJoinRoomResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxJoinRoomResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @instance + */ + WARemoteDebug_WxJoinRoomResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_WxJoinRoomResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp} WARemoteDebug_WxJoinRoomResp instance + */ + WARemoteDebug_WxJoinRoomResp.create = function create(properties) { + return new WARemoteDebug_WxJoinRoomResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxJoinRoomResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomResp} message WARemoteDebug_WxJoinRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxJoinRoomResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxJoinRoomResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxJoinRoomResp} message WARemoteDebug_WxJoinRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxJoinRoomResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxJoinRoomResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp} WARemoteDebug_WxJoinRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxJoinRoomResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxJoinRoomResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp} WARemoteDebug_WxJoinRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxJoinRoomResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxJoinRoomResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxJoinRoomResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_WxJoinRoomResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp} WARemoteDebug_WxJoinRoomResp + */ + WARemoteDebug_WxJoinRoomResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxJoinRoomResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp} message WARemoteDebug_WxJoinRoomResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxJoinRoomResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_WxJoinRoomResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxJoinRoomResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxJoinRoomResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxJoinRoomResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq = (function() { + + /** + * Properties of a WARemoteDebug_DevJoinRoomReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevJoinRoomReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_DevJoinRoomReq baseRequest + * @property {string} [appid] WARemoteDebug_DevJoinRoomReq appid + * @property {string} [roomId] WARemoteDebug_DevJoinRoomReq roomId + * @property {string} [wxpkgInfo] WARemoteDebug_DevJoinRoomReq wxpkgInfo + */ + + /** + * Constructs a new WARemoteDebug_DevJoinRoomReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevJoinRoomReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomReq=} [properties] Properties to set + */ + function WARemoteDebug_DevJoinRoomReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevJoinRoomReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @instance + */ + WARemoteDebug_DevJoinRoomReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_DevJoinRoomReq appid. + * @member {string}appid + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @instance + */ + WARemoteDebug_DevJoinRoomReq.prototype.appid = ""; + + /** + * WARemoteDebug_DevJoinRoomReq roomId. + * @member {string}roomId + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @instance + */ + WARemoteDebug_DevJoinRoomReq.prototype.roomId = ""; + + /** + * WARemoteDebug_DevJoinRoomReq wxpkgInfo. + * @member {string}wxpkgInfo + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @instance + */ + WARemoteDebug_DevJoinRoomReq.prototype.wxpkgInfo = ""; + + /** + * Creates a new WARemoteDebug_DevJoinRoomReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq} WARemoteDebug_DevJoinRoomReq instance + */ + WARemoteDebug_DevJoinRoomReq.create = function create(properties) { + return new WARemoteDebug_DevJoinRoomReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevJoinRoomReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomReq} message WARemoteDebug_DevJoinRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevJoinRoomReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.appid != null && message.hasOwnProperty("appid")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.appid); + if (message.roomId != null && message.hasOwnProperty("roomId")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.roomId); + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + writer.uint32( /* id 4, wireType 2 =*/ 34).string(message.wxpkgInfo); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevJoinRoomReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomReq} message WARemoteDebug_DevJoinRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevJoinRoomReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevJoinRoomReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq} WARemoteDebug_DevJoinRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevJoinRoomReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.appid = reader.string(); + break; + case 3: + message.roomId = reader.string(); + break; + case 4: + message.wxpkgInfo = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevJoinRoomReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq} WARemoteDebug_DevJoinRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevJoinRoomReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevJoinRoomReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevJoinRoomReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.appid != null && message.hasOwnProperty("appid")) + if (!$util.isString(message.appid)) + return "appid: string expected"; + if (message.roomId != null && message.hasOwnProperty("roomId")) + if (!$util.isString(message.roomId)) + return "roomId: string expected"; + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + if (!$util.isString(message.wxpkgInfo)) + return "wxpkgInfo: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DevJoinRoomReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq} WARemoteDebug_DevJoinRoomReq + */ + WARemoteDebug_DevJoinRoomReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.appid != null) + message.appid = String(object.appid); + if (object.roomId != null) + message.roomId = String(object.roomId); + if (object.wxpkgInfo != null) + message.wxpkgInfo = String(object.wxpkgInfo); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevJoinRoomReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq} message WARemoteDebug_DevJoinRoomReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevJoinRoomReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.appid = ""; + object.roomId = ""; + object.wxpkgInfo = ""; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.appid != null && message.hasOwnProperty("appid")) + object.appid = message.appid; + if (message.roomId != null && message.hasOwnProperty("roomId")) + object.roomId = message.roomId; + if (message.wxpkgInfo != null && message.hasOwnProperty("wxpkgInfo")) + object.wxpkgInfo = message.wxpkgInfo; + return object; + }; + + /** + * Converts this WARemoteDebug_DevJoinRoomReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevJoinRoomReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevJoinRoomReq; + })(); + + mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp = (function() { + + /** + * Properties of a WARemoteDebug_DevJoinRoomResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevJoinRoomResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_DevJoinRoomResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_DevJoinRoomResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevJoinRoomResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomResp=} [properties] Properties to set + */ + function WARemoteDebug_DevJoinRoomResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevJoinRoomResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @instance + */ + WARemoteDebug_DevJoinRoomResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_DevJoinRoomResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp} WARemoteDebug_DevJoinRoomResp instance + */ + WARemoteDebug_DevJoinRoomResp.create = function create(properties) { + return new WARemoteDebug_DevJoinRoomResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevJoinRoomResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomResp} message WARemoteDebug_DevJoinRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevJoinRoomResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevJoinRoomResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevJoinRoomResp} message WARemoteDebug_DevJoinRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevJoinRoomResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevJoinRoomResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp} WARemoteDebug_DevJoinRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevJoinRoomResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevJoinRoomResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp} WARemoteDebug_DevJoinRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevJoinRoomResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevJoinRoomResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevJoinRoomResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_DevJoinRoomResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp} WARemoteDebug_DevJoinRoomResp + */ + WARemoteDebug_DevJoinRoomResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevJoinRoomResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp} message WARemoteDebug_DevJoinRoomResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevJoinRoomResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_DevJoinRoomResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevJoinRoomResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevJoinRoomResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevJoinRoomResp; + })(); + + mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq = (function() { + + /** + * Properties of a WARemoteDebug_WxQuitRoomReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxQuitRoomReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_WxQuitRoomReq baseRequest + */ + + /** + * Constructs a new WARemoteDebug_WxQuitRoomReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxQuitRoomReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomReq=} [properties] Properties to set + */ + function WARemoteDebug_WxQuitRoomReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxQuitRoomReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @instance + */ + WARemoteDebug_WxQuitRoomReq.prototype.baseRequest = null; + + /** + * Creates a new WARemoteDebug_WxQuitRoomReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq} WARemoteDebug_WxQuitRoomReq instance + */ + WARemoteDebug_WxQuitRoomReq.create = function create(properties) { + return new WARemoteDebug_WxQuitRoomReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxQuitRoomReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomReq} message WARemoteDebug_WxQuitRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxQuitRoomReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxQuitRoomReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomReq} message WARemoteDebug_WxQuitRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxQuitRoomReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxQuitRoomReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq} WARemoteDebug_WxQuitRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxQuitRoomReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxQuitRoomReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq} WARemoteDebug_WxQuitRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxQuitRoomReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxQuitRoomReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxQuitRoomReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_WxQuitRoomReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq} WARemoteDebug_WxQuitRoomReq + */ + WARemoteDebug_WxQuitRoomReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxQuitRoomReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq} message WARemoteDebug_WxQuitRoomReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxQuitRoomReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseRequest = null; + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + return object; + }; + + /** + * Converts this WARemoteDebug_WxQuitRoomReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxQuitRoomReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxQuitRoomReq; + })(); + + mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp = (function() { + + /** + * Properties of a WARemoteDebug_WxQuitRoomResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxQuitRoomResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_WxQuitRoomResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_WxQuitRoomResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxQuitRoomResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomResp=} [properties] Properties to set + */ + function WARemoteDebug_WxQuitRoomResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxQuitRoomResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @instance + */ + WARemoteDebug_WxQuitRoomResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_WxQuitRoomResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp} WARemoteDebug_WxQuitRoomResp instance + */ + WARemoteDebug_WxQuitRoomResp.create = function create(properties) { + return new WARemoteDebug_WxQuitRoomResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxQuitRoomResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomResp} message WARemoteDebug_WxQuitRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxQuitRoomResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxQuitRoomResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxQuitRoomResp} message WARemoteDebug_WxQuitRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxQuitRoomResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxQuitRoomResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp} WARemoteDebug_WxQuitRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxQuitRoomResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxQuitRoomResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp} WARemoteDebug_WxQuitRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxQuitRoomResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxQuitRoomResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxQuitRoomResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_WxQuitRoomResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp} WARemoteDebug_WxQuitRoomResp + */ + WARemoteDebug_WxQuitRoomResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxQuitRoomResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp} message WARemoteDebug_WxQuitRoomResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxQuitRoomResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_WxQuitRoomResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxQuitRoomResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxQuitRoomResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxQuitRoomResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq = (function() { + + /** + * Properties of a WARemoteDebug_DevQuitRoomReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevQuitRoomReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_DevQuitRoomReq baseRequest + */ + + /** + * Constructs a new WARemoteDebug_DevQuitRoomReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevQuitRoomReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomReq=} [properties] Properties to set + */ + function WARemoteDebug_DevQuitRoomReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevQuitRoomReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @instance + */ + WARemoteDebug_DevQuitRoomReq.prototype.baseRequest = null; + + /** + * Creates a new WARemoteDebug_DevQuitRoomReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq} WARemoteDebug_DevQuitRoomReq instance + */ + WARemoteDebug_DevQuitRoomReq.create = function create(properties) { + return new WARemoteDebug_DevQuitRoomReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevQuitRoomReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomReq} message WARemoteDebug_DevQuitRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevQuitRoomReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevQuitRoomReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomReq} message WARemoteDebug_DevQuitRoomReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevQuitRoomReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevQuitRoomReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq} WARemoteDebug_DevQuitRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevQuitRoomReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevQuitRoomReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq} WARemoteDebug_DevQuitRoomReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevQuitRoomReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevQuitRoomReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevQuitRoomReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_DevQuitRoomReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq} WARemoteDebug_DevQuitRoomReq + */ + WARemoteDebug_DevQuitRoomReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevQuitRoomReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq} message WARemoteDebug_DevQuitRoomReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevQuitRoomReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseRequest = null; + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + return object; + }; + + /** + * Converts this WARemoteDebug_DevQuitRoomReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevQuitRoomReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevQuitRoomReq; + })(); + + mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp = (function() { + + /** + * Properties of a WARemoteDebug_DevQuitRoomResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevQuitRoomResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_DevQuitRoomResp baseResponse + */ + + /** + * Constructs a new WARemoteDebug_DevQuitRoomResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevQuitRoomResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomResp=} [properties] Properties to set + */ + function WARemoteDebug_DevQuitRoomResp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevQuitRoomResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @instance + */ + WARemoteDebug_DevQuitRoomResp.prototype.baseResponse = null; + + /** + * Creates a new WARemoteDebug_DevQuitRoomResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp} WARemoteDebug_DevQuitRoomResp instance + */ + WARemoteDebug_DevQuitRoomResp.create = function create(properties) { + return new WARemoteDebug_DevQuitRoomResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevQuitRoomResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomResp} message WARemoteDebug_DevQuitRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevQuitRoomResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevQuitRoomResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevQuitRoomResp} message WARemoteDebug_DevQuitRoomResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevQuitRoomResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevQuitRoomResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp} WARemoteDebug_DevQuitRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevQuitRoomResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevQuitRoomResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp} WARemoteDebug_DevQuitRoomResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevQuitRoomResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevQuitRoomResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevQuitRoomResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + return null; + }; + + /** + * Creates a WARemoteDebug_DevQuitRoomResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp} WARemoteDebug_DevQuitRoomResp + */ + WARemoteDebug_DevQuitRoomResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevQuitRoomResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp} message WARemoteDebug_DevQuitRoomResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevQuitRoomResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.baseResponse = null; + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + return object; + }; + + /** + * Converts this WARemoteDebug_DevQuitRoomResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevQuitRoomResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevQuitRoomResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevQuitRoomResp; + })(); + + mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq = (function() { + + /** + * Properties of a WARemoteDebug_WxSyncMessageReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxSyncMessageReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_WxSyncMessageReq baseRequest + * @property {number} [minSeq] WARemoteDebug_WxSyncMessageReq minSeq + * @property {number} [maxSeq] WARemoteDebug_WxSyncMessageReq maxSeq + */ + + /** + * Constructs a new WARemoteDebug_WxSyncMessageReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxSyncMessageReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageReq=} [properties] Properties to set + */ + function WARemoteDebug_WxSyncMessageReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxSyncMessageReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @instance + */ + WARemoteDebug_WxSyncMessageReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_WxSyncMessageReq minSeq. + * @member {number}minSeq + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @instance + */ + WARemoteDebug_WxSyncMessageReq.prototype.minSeq = 0; + + /** + * WARemoteDebug_WxSyncMessageReq maxSeq. + * @member {number}maxSeq + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @instance + */ + WARemoteDebug_WxSyncMessageReq.prototype.maxSeq = 0; + + /** + * Creates a new WARemoteDebug_WxSyncMessageReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq} WARemoteDebug_WxSyncMessageReq instance + */ + WARemoteDebug_WxSyncMessageReq.create = function create(properties) { + return new WARemoteDebug_WxSyncMessageReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxSyncMessageReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageReq} message WARemoteDebug_WxSyncMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxSyncMessageReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.minSeq); + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.maxSeq); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxSyncMessageReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageReq} message WARemoteDebug_WxSyncMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxSyncMessageReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxSyncMessageReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq} WARemoteDebug_WxSyncMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxSyncMessageReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.minSeq = reader.uint32(); + break; + case 3: + message.maxSeq = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxSyncMessageReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq} WARemoteDebug_WxSyncMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxSyncMessageReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxSyncMessageReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxSyncMessageReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + if (!$util.isInteger(message.minSeq)) + return "minSeq: integer expected"; + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + if (!$util.isInteger(message.maxSeq)) + return "maxSeq: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_WxSyncMessageReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq} WARemoteDebug_WxSyncMessageReq + */ + WARemoteDebug_WxSyncMessageReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.minSeq != null) + message.minSeq = object.minSeq >>> 0; + if (object.maxSeq != null) + message.maxSeq = object.maxSeq >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxSyncMessageReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq} message WARemoteDebug_WxSyncMessageReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxSyncMessageReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.minSeq = 0; + object.maxSeq = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + object.minSeq = message.minSeq; + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + object.maxSeq = message.maxSeq; + return object; + }; + + /** + * Converts this WARemoteDebug_WxSyncMessageReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxSyncMessageReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxSyncMessageReq; + })(); + + mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp = (function() { + + /** + * Properties of a WARemoteDebug_WxSyncMessageResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_WxSyncMessageResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_WxSyncMessageResp baseResponse + * @property {Array.} [debugMessageList] WARemoteDebug_WxSyncMessageResp debugMessageList + * @property {number} [sendAck] WARemoteDebug_WxSyncMessageResp sendAck + */ + + /** + * Constructs a new WARemoteDebug_WxSyncMessageResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_WxSyncMessageResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageResp=} [properties] Properties to set + */ + function WARemoteDebug_WxSyncMessageResp(properties) { + this.debugMessageList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_WxSyncMessageResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @instance + */ + WARemoteDebug_WxSyncMessageResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_WxSyncMessageResp debugMessageList. + * @member {Array.}debugMessageList + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @instance + */ + WARemoteDebug_WxSyncMessageResp.prototype.debugMessageList = $util.emptyArray; + + /** + * WARemoteDebug_WxSyncMessageResp sendAck. + * @member {number}sendAck + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @instance + */ + WARemoteDebug_WxSyncMessageResp.prototype.sendAck = 0; + + /** + * Creates a new WARemoteDebug_WxSyncMessageResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp} WARemoteDebug_WxSyncMessageResp instance + */ + WARemoteDebug_WxSyncMessageResp.create = function create(properties) { + return new WARemoteDebug_WxSyncMessageResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_WxSyncMessageResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageResp} message WARemoteDebug_WxSyncMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxSyncMessageResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.debugMessageList != null && message.debugMessageList.length) + for (var i = 0; i < message.debugMessageList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(message.debugMessageList[i], writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.sendAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_WxSyncMessageResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_WxSyncMessageResp} message WARemoteDebug_WxSyncMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_WxSyncMessageResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_WxSyncMessageResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp} WARemoteDebug_WxSyncMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxSyncMessageResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.debugMessageList && message.debugMessageList.length)) + message.debugMessageList = []; + message.debugMessageList.push($root.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(reader, reader.uint32())); + break; + case 3: + message.sendAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_WxSyncMessageResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp} WARemoteDebug_WxSyncMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_WxSyncMessageResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_WxSyncMessageResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_WxSyncMessageResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.debugMessageList != null && message.hasOwnProperty("debugMessageList")) { + if (!Array.isArray(message.debugMessageList)) + return "debugMessageList: array expected"; + for (var i = 0; i < message.debugMessageList.length; ++i) { + error = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.verify(message.debugMessageList[i]); + if (error) + return "debugMessageList." + error; + } + } + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + if (!$util.isInteger(message.sendAck)) + return "sendAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_WxSyncMessageResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp} WARemoteDebug_WxSyncMessageResp + */ + WARemoteDebug_WxSyncMessageResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.debugMessageList) { + if (!Array.isArray(object.debugMessageList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.debugMessageList: array expected"); + message.debugMessageList = []; + for (var i = 0; i < object.debugMessageList.length; ++i) { + if (typeof object.debugMessageList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp.debugMessageList: object expected"); + message.debugMessageList[i] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.fromObject(object.debugMessageList[i]); + } + } + if (object.sendAck != null) + message.sendAck = object.sendAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_WxSyncMessageResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp} message WARemoteDebug_WxSyncMessageResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_WxSyncMessageResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.debugMessageList = []; + if (options.defaults) { + object.baseResponse = null; + object.sendAck = 0; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.debugMessageList && message.debugMessageList.length) { + object.debugMessageList = []; + for (var j = 0; j < message.debugMessageList.length; ++j) + object.debugMessageList[j] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.toObject(message.debugMessageList[j], options); + } + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + object.sendAck = message.sendAck; + return object; + }; + + /** + * Converts this WARemoteDebug_WxSyncMessageResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_WxSyncMessageResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_WxSyncMessageResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_WxSyncMessageResp; + })(); + + mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq = (function() { + + /** + * Properties of a WARemoteDebug_DevSyncMessageReq. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevSyncMessageReq + * @property {mmbizwxadevremote.IWARemoteDebug_BaseReq} baseRequest WARemoteDebug_DevSyncMessageReq baseRequest + * @property {number} [minSeq] WARemoteDebug_DevSyncMessageReq minSeq + * @property {number} [maxSeq] WARemoteDebug_DevSyncMessageReq maxSeq + */ + + /** + * Constructs a new WARemoteDebug_DevSyncMessageReq. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevSyncMessageReq. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageReq=} [properties] Properties to set + */ + function WARemoteDebug_DevSyncMessageReq(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevSyncMessageReq baseRequest. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseReq}baseRequest + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @instance + */ + WARemoteDebug_DevSyncMessageReq.prototype.baseRequest = null; + + /** + * WARemoteDebug_DevSyncMessageReq minSeq. + * @member {number}minSeq + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @instance + */ + WARemoteDebug_DevSyncMessageReq.prototype.minSeq = 0; + + /** + * WARemoteDebug_DevSyncMessageReq maxSeq. + * @member {number}maxSeq + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @instance + */ + WARemoteDebug_DevSyncMessageReq.prototype.maxSeq = 0; + + /** + * Creates a new WARemoteDebug_DevSyncMessageReq instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageReq=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq} WARemoteDebug_DevSyncMessageReq instance + */ + WARemoteDebug_DevSyncMessageReq.create = function create(properties) { + return new WARemoteDebug_DevSyncMessageReq(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevSyncMessageReq message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageReq} message WARemoteDebug_DevSyncMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevSyncMessageReq.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseReq.encode(message.baseRequest, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.minSeq); + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.maxSeq); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevSyncMessageReq message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageReq} message WARemoteDebug_DevSyncMessageReq message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevSyncMessageReq.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevSyncMessageReq message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq} WARemoteDebug_DevSyncMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevSyncMessageReq.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.decode(reader, reader.uint32()); + break; + case 2: + message.minSeq = reader.uint32(); + break; + case 3: + message.maxSeq = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseRequest")) + throw $util.ProtocolError("missing required 'baseRequest'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevSyncMessageReq message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq} WARemoteDebug_DevSyncMessageReq + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevSyncMessageReq.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevSyncMessageReq message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevSyncMessageReq.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.verify(message.baseRequest); + if (error) + return "baseRequest." + error; + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + if (!$util.isInteger(message.minSeq)) + return "minSeq: integer expected"; + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + if (!$util.isInteger(message.maxSeq)) + return "maxSeq: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DevSyncMessageReq message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq} WARemoteDebug_DevSyncMessageReq + */ + WARemoteDebug_DevSyncMessageReq.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq(); + if (object.baseRequest != null) { + if (typeof object.baseRequest !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq.baseRequest: object expected"); + message.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.fromObject(object.baseRequest); + } + if (object.minSeq != null) + message.minSeq = object.minSeq >>> 0; + if (object.maxSeq != null) + message.maxSeq = object.maxSeq >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevSyncMessageReq message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq} message WARemoteDebug_DevSyncMessageReq + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevSyncMessageReq.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.baseRequest = null; + object.minSeq = 0; + object.maxSeq = 0; + } + if (message.baseRequest != null && message.hasOwnProperty("baseRequest")) + object.baseRequest = $root.mmbizwxadevremote.WARemoteDebug_BaseReq.toObject(message.baseRequest, options); + if (message.minSeq != null && message.hasOwnProperty("minSeq")) + object.minSeq = message.minSeq; + if (message.maxSeq != null && message.hasOwnProperty("maxSeq")) + object.maxSeq = message.maxSeq; + return object; + }; + + /** + * Converts this WARemoteDebug_DevSyncMessageReq to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageReq + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevSyncMessageReq.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevSyncMessageReq; + })(); + + mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp = (function() { + + /** + * Properties of a WARemoteDebug_DevSyncMessageResp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DevSyncMessageResp + * @property {mmbizwxadevremote.IWARemoteDebug_BaseResp} baseResponse WARemoteDebug_DevSyncMessageResp baseResponse + * @property {Array.} [debugMessageList] WARemoteDebug_DevSyncMessageResp debugMessageList + * @property {number} [sendAck] WARemoteDebug_DevSyncMessageResp sendAck + */ + + /** + * Constructs a new WARemoteDebug_DevSyncMessageResp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DevSyncMessageResp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageResp=} [properties] Properties to set + */ + function WARemoteDebug_DevSyncMessageResp(properties) { + this.debugMessageList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DevSyncMessageResp baseResponse. + * @member {mmbizwxadevremote.IWARemoteDebug_BaseResp}baseResponse + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @instance + */ + WARemoteDebug_DevSyncMessageResp.prototype.baseResponse = null; + + /** + * WARemoteDebug_DevSyncMessageResp debugMessageList. + * @member {Array.}debugMessageList + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @instance + */ + WARemoteDebug_DevSyncMessageResp.prototype.debugMessageList = $util.emptyArray; + + /** + * WARemoteDebug_DevSyncMessageResp sendAck. + * @member {number}sendAck + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @instance + */ + WARemoteDebug_DevSyncMessageResp.prototype.sendAck = 0; + + /** + * Creates a new WARemoteDebug_DevSyncMessageResp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageResp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp} WARemoteDebug_DevSyncMessageResp instance + */ + WARemoteDebug_DevSyncMessageResp.create = function create(properties) { + return new WARemoteDebug_DevSyncMessageResp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DevSyncMessageResp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageResp} message WARemoteDebug_DevSyncMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevSyncMessageResp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + $root.mmbizwxadevremote.WARemoteDebug_BaseResp.encode(message.baseResponse, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.debugMessageList != null && message.debugMessageList.length) + for (var i = 0; i < message.debugMessageList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(message.debugMessageList[i], writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + writer.uint32( /* id 3, wireType 0 =*/ 24).uint32(message.sendAck); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DevSyncMessageResp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DevSyncMessageResp} message WARemoteDebug_DevSyncMessageResp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DevSyncMessageResp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DevSyncMessageResp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp} WARemoteDebug_DevSyncMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevSyncMessageResp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.decode(reader, reader.uint32()); + break; + case 2: + if (!(message.debugMessageList && message.debugMessageList.length)) + message.debugMessageList = []; + message.debugMessageList.push($root.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(reader, reader.uint32())); + break; + case 3: + message.sendAck = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + if (!message.hasOwnProperty("baseResponse")) + throw $util.ProtocolError("missing required 'baseResponse'", { + instance: message + }); + return message; + }; + + /** + * Decodes a WARemoteDebug_DevSyncMessageResp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp} WARemoteDebug_DevSyncMessageResp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DevSyncMessageResp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DevSyncMessageResp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DevSyncMessageResp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var error = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.verify(message.baseResponse); + if (error) + return "baseResponse." + error; + if (message.debugMessageList != null && message.hasOwnProperty("debugMessageList")) { + if (!Array.isArray(message.debugMessageList)) + return "debugMessageList: array expected"; + for (var i = 0; i < message.debugMessageList.length; ++i) { + error = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.verify(message.debugMessageList[i]); + if (error) + return "debugMessageList." + error; + } + } + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + if (!$util.isInteger(message.sendAck)) + return "sendAck: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DevSyncMessageResp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp} WARemoteDebug_DevSyncMessageResp + */ + WARemoteDebug_DevSyncMessageResp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp(); + if (object.baseResponse != null) { + if (typeof object.baseResponse !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.baseResponse: object expected"); + message.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.fromObject(object.baseResponse); + } + if (object.debugMessageList) { + if (!Array.isArray(object.debugMessageList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.debugMessageList: array expected"); + message.debugMessageList = []; + for (var i = 0; i < object.debugMessageList.length; ++i) { + if (typeof object.debugMessageList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp.debugMessageList: object expected"); + message.debugMessageList[i] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.fromObject(object.debugMessageList[i]); + } + } + if (object.sendAck != null) + message.sendAck = object.sendAck >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DevSyncMessageResp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp} message WARemoteDebug_DevSyncMessageResp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DevSyncMessageResp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.debugMessageList = []; + if (options.defaults) { + object.baseResponse = null; + object.sendAck = 0; + } + if (message.baseResponse != null && message.hasOwnProperty("baseResponse")) + object.baseResponse = $root.mmbizwxadevremote.WARemoteDebug_BaseResp.toObject(message.baseResponse, options); + if (message.debugMessageList && message.debugMessageList.length) { + object.debugMessageList = []; + for (var j = 0; j < message.debugMessageList.length; ++j) + object.debugMessageList[j] = $root.mmbizwxadevremote.WARemoteDebug_DebugMessage.toObject(message.debugMessageList[j], options); + } + if (message.sendAck != null && message.hasOwnProperty("sendAck")) + object.sendAck = message.sendAck; + return object; + }; + + /** + * Converts this WARemoteDebug_DevSyncMessageResp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DevSyncMessageResp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DevSyncMessageResp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DevSyncMessageResp; + })(); + + mmbizwxadevremote.WARemoteDebug_MethodWithArgs = (function() { + + /** + * Properties of a WARemoteDebug_MethodWithArgs. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_MethodWithArgs + * @property {string} [methodName] WARemoteDebug_MethodWithArgs methodName + * @property {Array.} [methodArgList] WARemoteDebug_MethodWithArgs methodArgList + */ + + /** + * Constructs a new WARemoteDebug_MethodWithArgs. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_MethodWithArgs. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_MethodWithArgs=} [properties] Properties to set + */ + function WARemoteDebug_MethodWithArgs(properties) { + this.methodArgList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_MethodWithArgs methodName. + * @member {string}methodName + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @instance + */ + WARemoteDebug_MethodWithArgs.prototype.methodName = ""; + + /** + * WARemoteDebug_MethodWithArgs methodArgList. + * @member {Array.}methodArgList + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @instance + */ + WARemoteDebug_MethodWithArgs.prototype.methodArgList = $util.emptyArray; + + /** + * Creates a new WARemoteDebug_MethodWithArgs instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MethodWithArgs=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_MethodWithArgs} WARemoteDebug_MethodWithArgs instance + */ + WARemoteDebug_MethodWithArgs.create = function create(properties) { + return new WARemoteDebug_MethodWithArgs(properties); + }; + + /** + * Encodes the specified WARemoteDebug_MethodWithArgs message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MethodWithArgs.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MethodWithArgs} message WARemoteDebug_MethodWithArgs message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MethodWithArgs.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.methodName != null && message.hasOwnProperty("methodName")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.methodName); + if (message.methodArgList != null && message.methodArgList.length) + for (var i = 0; i < message.methodArgList.length; ++i) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.methodArgList[i]); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_MethodWithArgs message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_MethodWithArgs.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_MethodWithArgs} message WARemoteDebug_MethodWithArgs message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_MethodWithArgs.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_MethodWithArgs message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_MethodWithArgs} WARemoteDebug_MethodWithArgs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MethodWithArgs.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.methodName = reader.string(); + break; + case 2: + if (!(message.methodArgList && message.methodArgList.length)) + message.methodArgList = []; + message.methodArgList.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_MethodWithArgs message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_MethodWithArgs} WARemoteDebug_MethodWithArgs + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_MethodWithArgs.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_MethodWithArgs message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_MethodWithArgs.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.methodName != null && message.hasOwnProperty("methodName")) + if (!$util.isString(message.methodName)) + return "methodName: string expected"; + if (message.methodArgList != null && message.hasOwnProperty("methodArgList")) { + if (!Array.isArray(message.methodArgList)) + return "methodArgList: array expected"; + for (var i = 0; i < message.methodArgList.length; ++i) + if (!$util.isString(message.methodArgList[i])) + return "methodArgList: string[] expected"; + } + return null; + }; + + /** + * Creates a WARemoteDebug_MethodWithArgs message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_MethodWithArgs} WARemoteDebug_MethodWithArgs + */ + WARemoteDebug_MethodWithArgs.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs(); + if (object.methodName != null) + message.methodName = String(object.methodName); + if (object.methodArgList) { + if (!Array.isArray(object.methodArgList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_MethodWithArgs.methodArgList: array expected"); + message.methodArgList = []; + for (var i = 0; i < object.methodArgList.length; ++i) + message.methodArgList[i] = String(object.methodArgList[i]); + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_MethodWithArgs message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @static + * @param {mmbizwxadevremote.WARemoteDebug_MethodWithArgs} message WARemoteDebug_MethodWithArgs + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_MethodWithArgs.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.methodArgList = []; + if (options.defaults) + object.methodName = ""; + if (message.methodName != null && message.hasOwnProperty("methodName")) + object.methodName = message.methodName; + if (message.methodArgList && message.methodArgList.length) { + object.methodArgList = []; + for (var j = 0; j < message.methodArgList.length; ++j) + object.methodArgList[j] = message.methodArgList[j]; + } + return object; + }; + + /** + * Converts this WARemoteDebug_MethodWithArgs to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_MethodWithArgs + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_MethodWithArgs.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_MethodWithArgs; + })(); + + mmbizwxadevremote.WARemoteDebug_RegisterInterface = (function() { + + /** + * Properties of a WARemoteDebug_RegisterInterface. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_RegisterInterface + * @property {string} [objName] WARemoteDebug_RegisterInterface objName + * @property {Array.} [objMethodList] WARemoteDebug_RegisterInterface objMethodList + */ + + /** + * Constructs a new WARemoteDebug_RegisterInterface. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_RegisterInterface. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_RegisterInterface=} [properties] Properties to set + */ + function WARemoteDebug_RegisterInterface(properties) { + this.objMethodList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_RegisterInterface objName. + * @member {string}objName + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @instance + */ + WARemoteDebug_RegisterInterface.prototype.objName = ""; + + /** + * WARemoteDebug_RegisterInterface objMethodList. + * @member {Array.}objMethodList + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @instance + */ + WARemoteDebug_RegisterInterface.prototype.objMethodList = $util.emptyArray; + + /** + * Creates a new WARemoteDebug_RegisterInterface instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RegisterInterface=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_RegisterInterface} WARemoteDebug_RegisterInterface instance + */ + WARemoteDebug_RegisterInterface.create = function create(properties) { + return new WARemoteDebug_RegisterInterface(properties); + }; + + /** + * Encodes the specified WARemoteDebug_RegisterInterface message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RegisterInterface.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RegisterInterface} message WARemoteDebug_RegisterInterface message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RegisterInterface.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.objName != null && message.hasOwnProperty("objName")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.objName); + if (message.objMethodList != null && message.objMethodList.length) + for (var i = 0; i < message.objMethodList.length; ++i) + $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs.encode(message.objMethodList[i], writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_RegisterInterface message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RegisterInterface.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RegisterInterface} message WARemoteDebug_RegisterInterface message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RegisterInterface.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_RegisterInterface message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_RegisterInterface} WARemoteDebug_RegisterInterface + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RegisterInterface.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.objName = reader.string(); + break; + case 2: + if (!(message.objMethodList && message.objMethodList.length)) + message.objMethodList = []; + message.objMethodList.push($root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_RegisterInterface message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_RegisterInterface} WARemoteDebug_RegisterInterface + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RegisterInterface.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_RegisterInterface message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_RegisterInterface.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.objName != null && message.hasOwnProperty("objName")) + if (!$util.isString(message.objName)) + return "objName: string expected"; + if (message.objMethodList != null && message.hasOwnProperty("objMethodList")) { + if (!Array.isArray(message.objMethodList)) + return "objMethodList: array expected"; + for (var i = 0; i < message.objMethodList.length; ++i) { + var error = $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs.verify(message.objMethodList[i]); + if (error) + return "objMethodList." + error; + } + } + return null; + }; + + /** + * Creates a WARemoteDebug_RegisterInterface message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_RegisterInterface} WARemoteDebug_RegisterInterface + */ + WARemoteDebug_RegisterInterface.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface(); + if (object.objName != null) + message.objName = String(object.objName); + if (object.objMethodList) { + if (!Array.isArray(object.objMethodList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_RegisterInterface.objMethodList: array expected"); + message.objMethodList = []; + for (var i = 0; i < object.objMethodList.length; ++i) { + if (typeof object.objMethodList[i] !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_RegisterInterface.objMethodList: object expected"); + message.objMethodList[i] = $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs.fromObject(object.objMethodList[i]); + } + } + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_RegisterInterface message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @static + * @param {mmbizwxadevremote.WARemoteDebug_RegisterInterface} message WARemoteDebug_RegisterInterface + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_RegisterInterface.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.objMethodList = []; + if (options.defaults) + object.objName = ""; + if (message.objName != null && message.hasOwnProperty("objName")) + object.objName = message.objName; + if (message.objMethodList && message.objMethodList.length) { + object.objMethodList = []; + for (var j = 0; j < message.objMethodList.length; ++j) + object.objMethodList[j] = $root.mmbizwxadevremote.WARemoteDebug_MethodWithArgs.toObject(message.objMethodList[j], options); + } + return object; + }; + + /** + * Converts this WARemoteDebug_RegisterInterface to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_RegisterInterface + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_RegisterInterface.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_RegisterInterface; + })(); + + mmbizwxadevremote.WARemoteDebug_DeviceInfo = (function() { + + /** + * Properties of a WARemoteDebug_DeviceInfo. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DeviceInfo + * @property {string} [deviceName] WARemoteDebug_DeviceInfo deviceName + * @property {string} [deviceModel] WARemoteDebug_DeviceInfo deviceModel + * @property {string} [systemVersion] WARemoteDebug_DeviceInfo systemVersion + * @property {string} [wechatVersion] WARemoteDebug_DeviceInfo wechatVersion + * @property {number} [publibVersion] WARemoteDebug_DeviceInfo publibVersion + * @property {number} [screenWidth] WARemoteDebug_DeviceInfo screenWidth + * @property {number} [pixelRatio] WARemoteDebug_DeviceInfo pixelRatio + * @property {string} [userAgent] WARemoteDebug_DeviceInfo userAgent + */ + + /** + * Constructs a new WARemoteDebug_DeviceInfo. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DeviceInfo. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DeviceInfo=} [properties] Properties to set + */ + function WARemoteDebug_DeviceInfo(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DeviceInfo deviceName. + * @member {string}deviceName + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.deviceName = ""; + + /** + * WARemoteDebug_DeviceInfo deviceModel. + * @member {string}deviceModel + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.deviceModel = ""; + + /** + * WARemoteDebug_DeviceInfo systemVersion. + * @member {string}systemVersion + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.systemVersion = ""; + + /** + * WARemoteDebug_DeviceInfo wechatVersion. + * @member {string}wechatVersion + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.wechatVersion = ""; + + /** + * WARemoteDebug_DeviceInfo publibVersion. + * @member {number}publibVersion + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.publibVersion = 0; + + /** + * WARemoteDebug_DeviceInfo screenWidth. + * @member {number}screenWidth + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.screenWidth = 0; + + /** + * WARemoteDebug_DeviceInfo pixelRatio. + * @member {number}pixelRatio + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.pixelRatio = 0; + + /** + * WARemoteDebug_DeviceInfo userAgent. + * @member {string}userAgent + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + */ + WARemoteDebug_DeviceInfo.prototype.userAgent = ""; + + /** + * Creates a new WARemoteDebug_DeviceInfo instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DeviceInfo=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DeviceInfo} WARemoteDebug_DeviceInfo instance + */ + WARemoteDebug_DeviceInfo.create = function create(properties) { + return new WARemoteDebug_DeviceInfo(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DeviceInfo message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DeviceInfo.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DeviceInfo} message WARemoteDebug_DeviceInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DeviceInfo.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.deviceName != null && message.hasOwnProperty("deviceName")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.deviceName); + if (message.deviceModel != null && message.hasOwnProperty("deviceModel")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.deviceModel); + if (message.systemVersion != null && message.hasOwnProperty("systemVersion")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.systemVersion); + if (message.wechatVersion != null && message.hasOwnProperty("wechatVersion")) + writer.uint32( /* id 4, wireType 2 =*/ 34).string(message.wechatVersion); + if (message.publibVersion != null && message.hasOwnProperty("publibVersion")) + writer.uint32( /* id 5, wireType 0 =*/ 40).uint32(message.publibVersion); + if (message.screenWidth != null && message.hasOwnProperty("screenWidth")) + writer.uint32( /* id 6, wireType 5 =*/ 53).float(message.screenWidth); + if (message.pixelRatio != null && message.hasOwnProperty("pixelRatio")) + writer.uint32( /* id 7, wireType 5 =*/ 61).float(message.pixelRatio); + if (message.userAgent != null && message.hasOwnProperty("userAgent")) + writer.uint32( /* id 8, wireType 2 =*/ 66).string(message.userAgent); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DeviceInfo message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DeviceInfo.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DeviceInfo} message WARemoteDebug_DeviceInfo message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DeviceInfo.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DeviceInfo message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DeviceInfo} WARemoteDebug_DeviceInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DeviceInfo.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.deviceName = reader.string(); + break; + case 2: + message.deviceModel = reader.string(); + break; + case 3: + message.systemVersion = reader.string(); + break; + case 4: + message.wechatVersion = reader.string(); + break; + case 5: + message.publibVersion = reader.uint32(); + break; + case 6: + message.screenWidth = reader.float(); + break; + case 7: + message.pixelRatio = reader.float(); + break; + case 8: + message.userAgent = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_DeviceInfo message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DeviceInfo} WARemoteDebug_DeviceInfo + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DeviceInfo.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DeviceInfo message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DeviceInfo.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.deviceName != null && message.hasOwnProperty("deviceName")) + if (!$util.isString(message.deviceName)) + return "deviceName: string expected"; + if (message.deviceModel != null && message.hasOwnProperty("deviceModel")) + if (!$util.isString(message.deviceModel)) + return "deviceModel: string expected"; + if (message.systemVersion != null && message.hasOwnProperty("systemVersion")) + if (!$util.isString(message.systemVersion)) + return "systemVersion: string expected"; + if (message.wechatVersion != null && message.hasOwnProperty("wechatVersion")) + if (!$util.isString(message.wechatVersion)) + return "wechatVersion: string expected"; + if (message.publibVersion != null && message.hasOwnProperty("publibVersion")) + if (!$util.isInteger(message.publibVersion)) + return "publibVersion: integer expected"; + if (message.screenWidth != null && message.hasOwnProperty("screenWidth")) + if (typeof message.screenWidth !== "number") + return "screenWidth: number expected"; + if (message.pixelRatio != null && message.hasOwnProperty("pixelRatio")) + if (typeof message.pixelRatio !== "number") + return "pixelRatio: number expected"; + if (message.userAgent != null && message.hasOwnProperty("userAgent")) + if (!$util.isString(message.userAgent)) + return "userAgent: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DeviceInfo message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DeviceInfo} WARemoteDebug_DeviceInfo + */ + WARemoteDebug_DeviceInfo.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo(); + if (object.deviceName != null) + message.deviceName = String(object.deviceName); + if (object.deviceModel != null) + message.deviceModel = String(object.deviceModel); + if (object.systemVersion != null) + message.systemVersion = String(object.systemVersion); + if (object.wechatVersion != null) + message.wechatVersion = String(object.wechatVersion); + if (object.publibVersion != null) + message.publibVersion = object.publibVersion >>> 0; + if (object.screenWidth != null) + message.screenWidth = Number(object.screenWidth); + if (object.pixelRatio != null) + message.pixelRatio = Number(object.pixelRatio); + if (object.userAgent != null) + message.userAgent = String(object.userAgent); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DeviceInfo message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DeviceInfo} message WARemoteDebug_DeviceInfo + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DeviceInfo.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.deviceName = ""; + object.deviceModel = ""; + object.systemVersion = ""; + object.wechatVersion = ""; + object.publibVersion = 0; + object.screenWidth = 0; + object.pixelRatio = 0; + object.userAgent = ""; + } + if (message.deviceName != null && message.hasOwnProperty("deviceName")) + object.deviceName = message.deviceName; + if (message.deviceModel != null && message.hasOwnProperty("deviceModel")) + object.deviceModel = message.deviceModel; + if (message.systemVersion != null && message.hasOwnProperty("systemVersion")) + object.systemVersion = message.systemVersion; + if (message.wechatVersion != null && message.hasOwnProperty("wechatVersion")) + object.wechatVersion = message.wechatVersion; + if (message.publibVersion != null && message.hasOwnProperty("publibVersion")) + object.publibVersion = message.publibVersion; + if (message.screenWidth != null && message.hasOwnProperty("screenWidth")) + object.screenWidth = options.json && !isFinite(message.screenWidth) ? String(message.screenWidth) : message.screenWidth; + if (message.pixelRatio != null && message.hasOwnProperty("pixelRatio")) + object.pixelRatio = options.json && !isFinite(message.pixelRatio) ? String(message.pixelRatio) : message.pixelRatio; + if (message.userAgent != null && message.hasOwnProperty("userAgent")) + object.userAgent = message.userAgent; + return object; + }; + + /** + * Converts this WARemoteDebug_DeviceInfo to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DeviceInfo + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DeviceInfo.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DeviceInfo; + })(); + + mmbizwxadevremote.WARemoteDebug_SetupContext = (function() { + + /** + * Properties of a WARemoteDebug_SetupContext. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_SetupContext + * @property {mmbizwxadevremote.IWARemoteDebug_RegisterInterface} [registerInterface] WARemoteDebug_SetupContext registerInterface + * @property {mmbizwxadevremote.IWARemoteDebug_DeviceInfo} [deviceInfo] WARemoteDebug_SetupContext deviceInfo + * @property {string} [configureJs] WARemoteDebug_SetupContext configureJs + * @property {string} [publicJsMd5] WARemoteDebug_SetupContext publicJsMd5 + * @property {string} [threeJsMd5] WARemoteDebug_SetupContext threeJsMd5 + * @property {number} [supportCompressAlgo] WARemoteDebug_SetupContext supportCompressAlgo + */ + + /** + * Constructs a new WARemoteDebug_SetupContext. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_SetupContext. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_SetupContext=} [properties] Properties to set + */ + function WARemoteDebug_SetupContext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_SetupContext registerInterface. + * @member {(mmbizwxadevremote.IWARemoteDebug_RegisterInterface|null|undefined)}registerInterface + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.registerInterface = null; + + /** + * WARemoteDebug_SetupContext deviceInfo. + * @member {(mmbizwxadevremote.IWARemoteDebug_DeviceInfo|null|undefined)}deviceInfo + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.deviceInfo = null; + + /** + * WARemoteDebug_SetupContext configureJs. + * @member {string}configureJs + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.configureJs = ""; + + /** + * WARemoteDebug_SetupContext publicJsMd5. + * @member {string}publicJsMd5 + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.publicJsMd5 = ""; + + /** + * WARemoteDebug_SetupContext threeJsMd5. + * @member {string}threeJsMd5 + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.threeJsMd5 = ""; + + /** + * WARemoteDebug_SetupContext supportCompressAlgo. + * @member {number}supportCompressAlgo + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + */ + WARemoteDebug_SetupContext.prototype.supportCompressAlgo = 0; + + /** + * Creates a new WARemoteDebug_SetupContext instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SetupContext=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_SetupContext} WARemoteDebug_SetupContext instance + */ + WARemoteDebug_SetupContext.create = function create(properties) { + return new WARemoteDebug_SetupContext(properties); + }; + + /** + * Encodes the specified WARemoteDebug_SetupContext message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SetupContext.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SetupContext} message WARemoteDebug_SetupContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SetupContext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.registerInterface != null && message.hasOwnProperty("registerInterface")) + $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface.encode(message.registerInterface, writer.uint32( /* id 1, wireType 2 =*/ 10).fork()).ldelim(); + if (message.deviceInfo != null && message.hasOwnProperty("deviceInfo")) + $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo.encode(message.deviceInfo, writer.uint32( /* id 2, wireType 2 =*/ 18).fork()).ldelim(); + if (message.configureJs != null && message.hasOwnProperty("configureJs")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.configureJs); + if (message.publicJsMd5 != null && message.hasOwnProperty("publicJsMd5")) + writer.uint32( /* id 4, wireType 2 =*/ 34).string(message.publicJsMd5); + if (message.threeJsMd5 != null && message.hasOwnProperty("threeJsMd5")) + writer.uint32( /* id 5, wireType 2 =*/ 42).string(message.threeJsMd5); + if (message.supportCompressAlgo != null && message.hasOwnProperty("supportCompressAlgo")) + writer.uint32( /* id 6, wireType 0 =*/ 48).uint32(message.supportCompressAlgo); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_SetupContext message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_SetupContext.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_SetupContext} message WARemoteDebug_SetupContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_SetupContext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_SetupContext message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_SetupContext} WARemoteDebug_SetupContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SetupContext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_SetupContext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.registerInterface = $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface.decode(reader, reader.uint32()); + break; + case 2: + message.deviceInfo = $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo.decode(reader, reader.uint32()); + break; + case 3: + message.configureJs = reader.string(); + break; + case 4: + message.publicJsMd5 = reader.string(); + break; + case 5: + message.threeJsMd5 = reader.string(); + break; + case 6: + message.supportCompressAlgo = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_SetupContext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_SetupContext} WARemoteDebug_SetupContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_SetupContext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_SetupContext message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_SetupContext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.registerInterface != null && message.hasOwnProperty("registerInterface")) { + var error = $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface.verify(message.registerInterface); + if (error) + return "registerInterface." + error; + } + if (message.deviceInfo != null && message.hasOwnProperty("deviceInfo")) { + error = $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo.verify(message.deviceInfo); + if (error) + return "deviceInfo." + error; + } + if (message.configureJs != null && message.hasOwnProperty("configureJs")) + if (!$util.isString(message.configureJs)) + return "configureJs: string expected"; + if (message.publicJsMd5 != null && message.hasOwnProperty("publicJsMd5")) + if (!$util.isString(message.publicJsMd5)) + return "publicJsMd5: string expected"; + if (message.threeJsMd5 != null && message.hasOwnProperty("threeJsMd5")) + if (!$util.isString(message.threeJsMd5)) + return "threeJsMd5: string expected"; + if (message.supportCompressAlgo != null && message.hasOwnProperty("supportCompressAlgo")) + if (!$util.isInteger(message.supportCompressAlgo)) + return "supportCompressAlgo: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_SetupContext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_SetupContext} WARemoteDebug_SetupContext + */ + WARemoteDebug_SetupContext.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_SetupContext) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_SetupContext(); + if (object.registerInterface != null) { + if (typeof object.registerInterface !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SetupContext.registerInterface: object expected"); + message.registerInterface = $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface.fromObject(object.registerInterface); + } + if (object.deviceInfo != null) { + if (typeof object.deviceInfo !== "object") + throw TypeError(".mmbizwxadevremote.WARemoteDebug_SetupContext.deviceInfo: object expected"); + message.deviceInfo = $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo.fromObject(object.deviceInfo); + } + if (object.configureJs != null) + message.configureJs = String(object.configureJs); + if (object.publicJsMd5 != null) + message.publicJsMd5 = String(object.publicJsMd5); + if (object.threeJsMd5 != null) + message.threeJsMd5 = String(object.threeJsMd5); + if (object.supportCompressAlgo != null) + message.supportCompressAlgo = object.supportCompressAlgo >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_SetupContext message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @static + * @param {mmbizwxadevremote.WARemoteDebug_SetupContext} message WARemoteDebug_SetupContext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_SetupContext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.registerInterface = null; + object.deviceInfo = null; + object.configureJs = ""; + object.publicJsMd5 = ""; + object.threeJsMd5 = ""; + object.supportCompressAlgo = 0; + } + if (message.registerInterface != null && message.hasOwnProperty("registerInterface")) + object.registerInterface = $root.mmbizwxadevremote.WARemoteDebug_RegisterInterface.toObject(message.registerInterface, options); + if (message.deviceInfo != null && message.hasOwnProperty("deviceInfo")) + object.deviceInfo = $root.mmbizwxadevremote.WARemoteDebug_DeviceInfo.toObject(message.deviceInfo, options); + if (message.configureJs != null && message.hasOwnProperty("configureJs")) + object.configureJs = message.configureJs; + if (message.publicJsMd5 != null && message.hasOwnProperty("publicJsMd5")) + object.publicJsMd5 = message.publicJsMd5; + if (message.threeJsMd5 != null && message.hasOwnProperty("threeJsMd5")) + object.threeJsMd5 = message.threeJsMd5; + if (message.supportCompressAlgo != null && message.hasOwnProperty("supportCompressAlgo")) + object.supportCompressAlgo = message.supportCompressAlgo; + return object; + }; + + /** + * Converts this WARemoteDebug_SetupContext to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_SetupContext + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_SetupContext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_SetupContext; + })(); + + mmbizwxadevremote.WARemoteDebug_CallInterface = (function() { + + /** + * Properties of a WARemoteDebug_CallInterface. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_CallInterface + * @property {string} [objName] WARemoteDebug_CallInterface objName + * @property {string} [methodName] WARemoteDebug_CallInterface methodName + * @property {Array.} [methodArgList] WARemoteDebug_CallInterface methodArgList + * @property {number} [callId] WARemoteDebug_CallInterface callId + */ + + /** + * Constructs a new WARemoteDebug_CallInterface. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_CallInterface. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterface=} [properties] Properties to set + */ + function WARemoteDebug_CallInterface(properties) { + this.methodArgList = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_CallInterface objName. + * @member {string}objName + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @instance + */ + WARemoteDebug_CallInterface.prototype.objName = ""; + + /** + * WARemoteDebug_CallInterface methodName. + * @member {string}methodName + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @instance + */ + WARemoteDebug_CallInterface.prototype.methodName = ""; + + /** + * WARemoteDebug_CallInterface methodArgList. + * @member {Array.}methodArgList + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @instance + */ + WARemoteDebug_CallInterface.prototype.methodArgList = $util.emptyArray; + + /** + * WARemoteDebug_CallInterface callId. + * @member {number}callId + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @instance + */ + WARemoteDebug_CallInterface.prototype.callId = 0; + + /** + * Creates a new WARemoteDebug_CallInterface instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterface=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterface} WARemoteDebug_CallInterface instance + */ + WARemoteDebug_CallInterface.create = function create(properties) { + return new WARemoteDebug_CallInterface(properties); + }; + + /** + * Encodes the specified WARemoteDebug_CallInterface message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CallInterface.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterface} message WARemoteDebug_CallInterface message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CallInterface.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.objName != null && message.hasOwnProperty("objName")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.objName); + if (message.methodName != null && message.hasOwnProperty("methodName")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.methodName); + if (message.methodArgList != null && message.methodArgList.length) + for (var i = 0; i < message.methodArgList.length; ++i) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.methodArgList[i]); + if (message.callId != null && message.hasOwnProperty("callId")) + writer.uint32( /* id 4, wireType 0 =*/ 32).uint32(message.callId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_CallInterface message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CallInterface.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterface} message WARemoteDebug_CallInterface message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CallInterface.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_CallInterface message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterface} WARemoteDebug_CallInterface + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CallInterface.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_CallInterface(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.objName = reader.string(); + break; + case 2: + message.methodName = reader.string(); + break; + case 3: + if (!(message.methodArgList && message.methodArgList.length)) + message.methodArgList = []; + message.methodArgList.push(reader.string()); + break; + case 4: + message.callId = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_CallInterface message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterface} WARemoteDebug_CallInterface + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CallInterface.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_CallInterface message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_CallInterface.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.objName != null && message.hasOwnProperty("objName")) + if (!$util.isString(message.objName)) + return "objName: string expected"; + if (message.methodName != null && message.hasOwnProperty("methodName")) + if (!$util.isString(message.methodName)) + return "methodName: string expected"; + if (message.methodArgList != null && message.hasOwnProperty("methodArgList")) { + if (!Array.isArray(message.methodArgList)) + return "methodArgList: array expected"; + for (var i = 0; i < message.methodArgList.length; ++i) + if (!$util.isString(message.methodArgList[i])) + return "methodArgList: string[] expected"; + } + if (message.callId != null && message.hasOwnProperty("callId")) + if (!$util.isInteger(message.callId)) + return "callId: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_CallInterface message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterface} WARemoteDebug_CallInterface + */ + WARemoteDebug_CallInterface.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_CallInterface) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_CallInterface(); + if (object.objName != null) + message.objName = String(object.objName); + if (object.methodName != null) + message.methodName = String(object.methodName); + if (object.methodArgList) { + if (!Array.isArray(object.methodArgList)) + throw TypeError(".mmbizwxadevremote.WARemoteDebug_CallInterface.methodArgList: array expected"); + message.methodArgList = []; + for (var i = 0; i < object.methodArgList.length; ++i) + message.methodArgList[i] = String(object.methodArgList[i]); + } + if (object.callId != null) + message.callId = object.callId >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_CallInterface message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @static + * @param {mmbizwxadevremote.WARemoteDebug_CallInterface} message WARemoteDebug_CallInterface + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_CallInterface.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.methodArgList = []; + if (options.defaults) { + object.objName = ""; + object.methodName = ""; + object.callId = 0; + } + if (message.objName != null && message.hasOwnProperty("objName")) + object.objName = message.objName; + if (message.methodName != null && message.hasOwnProperty("methodName")) + object.methodName = message.methodName; + if (message.methodArgList && message.methodArgList.length) { + object.methodArgList = []; + for (var j = 0; j < message.methodArgList.length; ++j) + object.methodArgList[j] = message.methodArgList[j]; + } + if (message.callId != null && message.hasOwnProperty("callId")) + object.callId = message.callId; + return object; + }; + + /** + * Converts this WARemoteDebug_CallInterface to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterface + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_CallInterface.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_CallInterface; + })(); + + mmbizwxadevremote.WARemoteDebug_CallInterfaceResult = (function() { + + /** + * Properties of a WARemoteDebug_CallInterfaceResult. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_CallInterfaceResult + * @property {string} [ret] WARemoteDebug_CallInterfaceResult ret + * @property {number} [callId] WARemoteDebug_CallInterfaceResult callId + * @property {string} [debugInfo] WARemoteDebug_CallInterfaceResult debugInfo + */ + + /** + * Constructs a new WARemoteDebug_CallInterfaceResult. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_CallInterfaceResult. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterfaceResult=} [properties] Properties to set + */ + function WARemoteDebug_CallInterfaceResult(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_CallInterfaceResult ret. + * @member {string}ret + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @instance + */ + WARemoteDebug_CallInterfaceResult.prototype.ret = ""; + + /** + * WARemoteDebug_CallInterfaceResult callId. + * @member {number}callId + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @instance + */ + WARemoteDebug_CallInterfaceResult.prototype.callId = 0; + + /** + * WARemoteDebug_CallInterfaceResult debugInfo. + * @member {string}debugInfo + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @instance + */ + WARemoteDebug_CallInterfaceResult.prototype.debugInfo = ""; + + /** + * Creates a new WARemoteDebug_CallInterfaceResult instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterfaceResult=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterfaceResult} WARemoteDebug_CallInterfaceResult instance + */ + WARemoteDebug_CallInterfaceResult.create = function create(properties) { + return new WARemoteDebug_CallInterfaceResult(properties); + }; + + /** + * Encodes the specified WARemoteDebug_CallInterfaceResult message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CallInterfaceResult.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterfaceResult} message WARemoteDebug_CallInterfaceResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CallInterfaceResult.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ret != null && message.hasOwnProperty("ret")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.ret); + if (message.callId != null && message.hasOwnProperty("callId")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.callId); + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.debugInfo); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_CallInterfaceResult message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CallInterfaceResult.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CallInterfaceResult} message WARemoteDebug_CallInterfaceResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CallInterfaceResult.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_CallInterfaceResult message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterfaceResult} WARemoteDebug_CallInterfaceResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CallInterfaceResult.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_CallInterfaceResult(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ret = reader.string(); + break; + case 2: + message.callId = reader.uint32(); + break; + case 3: + message.debugInfo = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_CallInterfaceResult message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterfaceResult} WARemoteDebug_CallInterfaceResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CallInterfaceResult.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_CallInterfaceResult message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_CallInterfaceResult.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ret != null && message.hasOwnProperty("ret")) + if (!$util.isString(message.ret)) + return "ret: string expected"; + if (message.callId != null && message.hasOwnProperty("callId")) + if (!$util.isInteger(message.callId)) + return "callId: integer expected"; + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + if (!$util.isString(message.debugInfo)) + return "debugInfo: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_CallInterfaceResult message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_CallInterfaceResult} WARemoteDebug_CallInterfaceResult + */ + WARemoteDebug_CallInterfaceResult.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_CallInterfaceResult) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_CallInterfaceResult(); + if (object.ret != null) + message.ret = String(object.ret); + if (object.callId != null) + message.callId = object.callId >>> 0; + if (object.debugInfo != null) + message.debugInfo = String(object.debugInfo); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_CallInterfaceResult message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @static + * @param {mmbizwxadevremote.WARemoteDebug_CallInterfaceResult} message WARemoteDebug_CallInterfaceResult + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_CallInterfaceResult.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.ret = ""; + object.callId = 0; + object.debugInfo = ""; + } + if (message.ret != null && message.hasOwnProperty("ret")) + object.ret = message.ret; + if (message.callId != null && message.hasOwnProperty("callId")) + object.callId = message.callId; + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + object.debugInfo = message.debugInfo; + return object; + }; + + /** + * Converts this WARemoteDebug_CallInterfaceResult to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_CallInterfaceResult + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_CallInterfaceResult.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_CallInterfaceResult; + })(); + + mmbizwxadevremote.WARemoteDebug_EvaluateJavascript = (function() { + + /** + * Properties of a WARemoteDebug_EvaluateJavascript. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_EvaluateJavascript + * @property {string} [script] WARemoteDebug_EvaluateJavascript script + * @property {number} [evaluateId] WARemoteDebug_EvaluateJavascript evaluateId + * @property {string} [debugInfo] WARemoteDebug_EvaluateJavascript debugInfo + */ + + /** + * Constructs a new WARemoteDebug_EvaluateJavascript. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_EvaluateJavascript. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascript=} [properties] Properties to set + */ + function WARemoteDebug_EvaluateJavascript(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_EvaluateJavascript script. + * @member {string}script + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @instance + */ + WARemoteDebug_EvaluateJavascript.prototype.script = ""; + + /** + * WARemoteDebug_EvaluateJavascript evaluateId. + * @member {number}evaluateId + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @instance + */ + WARemoteDebug_EvaluateJavascript.prototype.evaluateId = 0; + + /** + * WARemoteDebug_EvaluateJavascript debugInfo. + * @member {string}debugInfo + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @instance + */ + WARemoteDebug_EvaluateJavascript.prototype.debugInfo = ""; + + /** + * Creates a new WARemoteDebug_EvaluateJavascript instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascript=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascript} WARemoteDebug_EvaluateJavascript instance + */ + WARemoteDebug_EvaluateJavascript.create = function create(properties) { + return new WARemoteDebug_EvaluateJavascript(properties); + }; + + /** + * Encodes the specified WARemoteDebug_EvaluateJavascript message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EvaluateJavascript.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascript} message WARemoteDebug_EvaluateJavascript message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EvaluateJavascript.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.script != null && message.hasOwnProperty("script")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.script); + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.evaluateId); + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.debugInfo); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_EvaluateJavascript message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EvaluateJavascript.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascript} message WARemoteDebug_EvaluateJavascript message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EvaluateJavascript.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_EvaluateJavascript message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascript} WARemoteDebug_EvaluateJavascript + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EvaluateJavascript.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascript(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.script = reader.string(); + break; + case 2: + message.evaluateId = reader.uint32(); + break; + case 3: + message.debugInfo = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_EvaluateJavascript message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascript} WARemoteDebug_EvaluateJavascript + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EvaluateJavascript.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_EvaluateJavascript message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_EvaluateJavascript.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.script != null && message.hasOwnProperty("script")) + if (!$util.isString(message.script)) + return "script: string expected"; + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + if (!$util.isInteger(message.evaluateId)) + return "evaluateId: integer expected"; + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + if (!$util.isString(message.debugInfo)) + return "debugInfo: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_EvaluateJavascript message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascript} WARemoteDebug_EvaluateJavascript + */ + WARemoteDebug_EvaluateJavascript.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascript) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascript(); + if (object.script != null) + message.script = String(object.script); + if (object.evaluateId != null) + message.evaluateId = object.evaluateId >>> 0; + if (object.debugInfo != null) + message.debugInfo = String(object.debugInfo); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_EvaluateJavascript message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @static + * @param {mmbizwxadevremote.WARemoteDebug_EvaluateJavascript} message WARemoteDebug_EvaluateJavascript + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_EvaluateJavascript.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.script = ""; + object.evaluateId = 0; + object.debugInfo = ""; + } + if (message.script != null && message.hasOwnProperty("script")) + object.script = message.script; + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + object.evaluateId = message.evaluateId; + if (message.debugInfo != null && message.hasOwnProperty("debugInfo")) + object.debugInfo = message.debugInfo; + return object; + }; + + /** + * Converts this WARemoteDebug_EvaluateJavascript to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascript + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_EvaluateJavascript.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_EvaluateJavascript; + })(); + + mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult = (function() { + + /** + * Properties of a WARemoteDebug_EvaluateJavascriptResult. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_EvaluateJavascriptResult + * @property {string} [ret] WARemoteDebug_EvaluateJavascriptResult ret + * @property {number} [evaluateId] WARemoteDebug_EvaluateJavascriptResult evaluateId + */ + + /** + * Constructs a new WARemoteDebug_EvaluateJavascriptResult. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_EvaluateJavascriptResult. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascriptResult=} [properties] Properties to set + */ + function WARemoteDebug_EvaluateJavascriptResult(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_EvaluateJavascriptResult ret. + * @member {string}ret + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @instance + */ + WARemoteDebug_EvaluateJavascriptResult.prototype.ret = ""; + + /** + * WARemoteDebug_EvaluateJavascriptResult evaluateId. + * @member {number}evaluateId + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @instance + */ + WARemoteDebug_EvaluateJavascriptResult.prototype.evaluateId = 0; + + /** + * Creates a new WARemoteDebug_EvaluateJavascriptResult instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascriptResult=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult} WARemoteDebug_EvaluateJavascriptResult instance + */ + WARemoteDebug_EvaluateJavascriptResult.create = function create(properties) { + return new WARemoteDebug_EvaluateJavascriptResult(properties); + }; + + /** + * Encodes the specified WARemoteDebug_EvaluateJavascriptResult message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascriptResult} message WARemoteDebug_EvaluateJavascriptResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EvaluateJavascriptResult.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.ret != null && message.hasOwnProperty("ret")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.ret); + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.evaluateId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_EvaluateJavascriptResult message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_EvaluateJavascriptResult} message WARemoteDebug_EvaluateJavascriptResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_EvaluateJavascriptResult.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_EvaluateJavascriptResult message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult} WARemoteDebug_EvaluateJavascriptResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EvaluateJavascriptResult.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.ret = reader.string(); + break; + case 2: + message.evaluateId = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_EvaluateJavascriptResult message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult} WARemoteDebug_EvaluateJavascriptResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_EvaluateJavascriptResult.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_EvaluateJavascriptResult message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_EvaluateJavascriptResult.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.ret != null && message.hasOwnProperty("ret")) + if (!$util.isString(message.ret)) + return "ret: string expected"; + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + if (!$util.isInteger(message.evaluateId)) + return "evaluateId: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_EvaluateJavascriptResult message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult} WARemoteDebug_EvaluateJavascriptResult + */ + WARemoteDebug_EvaluateJavascriptResult.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult(); + if (object.ret != null) + message.ret = String(object.ret); + if (object.evaluateId != null) + message.evaluateId = object.evaluateId >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_EvaluateJavascriptResult message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @static + * @param {mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult} message WARemoteDebug_EvaluateJavascriptResult + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_EvaluateJavascriptResult.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.ret = ""; + object.evaluateId = 0; + } + if (message.ret != null && message.hasOwnProperty("ret")) + object.ret = message.ret; + if (message.evaluateId != null && message.hasOwnProperty("evaluateId")) + object.evaluateId = message.evaluateId; + return object; + }; + + /** + * Converts this WARemoteDebug_EvaluateJavascriptResult to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_EvaluateJavascriptResult + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_EvaluateJavascriptResult.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_EvaluateJavascriptResult; + })(); + + mmbizwxadevremote.WARemoteDebug_Breakpoint = (function() { + + /** + * Properties of a WARemoteDebug_Breakpoint. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_Breakpoint + * @property {boolean} [isHit] WARemoteDebug_Breakpoint isHit + */ + + /** + * Constructs a new WARemoteDebug_Breakpoint. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_Breakpoint. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_Breakpoint=} [properties] Properties to set + */ + function WARemoteDebug_Breakpoint(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_Breakpoint isHit. + * @member {boolean}isHit + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @instance + */ + WARemoteDebug_Breakpoint.prototype.isHit = false; + + /** + * Creates a new WARemoteDebug_Breakpoint instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Breakpoint=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_Breakpoint} WARemoteDebug_Breakpoint instance + */ + WARemoteDebug_Breakpoint.create = function create(properties) { + return new WARemoteDebug_Breakpoint(properties); + }; + + /** + * Encodes the specified WARemoteDebug_Breakpoint message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Breakpoint.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Breakpoint} message WARemoteDebug_Breakpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Breakpoint.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.isHit != null && message.hasOwnProperty("isHit")) + writer.uint32( /* id 1, wireType 0 =*/ 8).bool(message.isHit); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_Breakpoint message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Breakpoint.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Breakpoint} message WARemoteDebug_Breakpoint message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Breakpoint.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_Breakpoint message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_Breakpoint} WARemoteDebug_Breakpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Breakpoint.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_Breakpoint(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.isHit = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_Breakpoint message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_Breakpoint} WARemoteDebug_Breakpoint + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Breakpoint.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_Breakpoint message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_Breakpoint.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.isHit != null && message.hasOwnProperty("isHit")) + if (typeof message.isHit !== "boolean") + return "isHit: boolean expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_Breakpoint message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_Breakpoint} WARemoteDebug_Breakpoint + */ + WARemoteDebug_Breakpoint.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_Breakpoint) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_Breakpoint(); + if (object.isHit != null) + message.isHit = Boolean(object.isHit); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_Breakpoint message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @static + * @param {mmbizwxadevremote.WARemoteDebug_Breakpoint} message WARemoteDebug_Breakpoint + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_Breakpoint.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.isHit = false; + if (message.isHit != null && message.hasOwnProperty("isHit")) + object.isHit = message.isHit; + return object; + }; + + /** + * Converts this WARemoteDebug_Breakpoint to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_Breakpoint + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_Breakpoint.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_Breakpoint; + })(); + + mmbizwxadevremote.WARemoteDebug_Ping = (function() { + + /** + * Properties of a WARemoteDebug_Ping. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_Ping + * @property {number|Long} [pingId] WARemoteDebug_Ping pingId + * @property {string} [payload] WARemoteDebug_Ping payload + */ + + /** + * Constructs a new WARemoteDebug_Ping. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_Ping. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_Ping=} [properties] Properties to set + */ + function WARemoteDebug_Ping(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_Ping pingId. + * @member {number|Long}pingId + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @instance + */ + WARemoteDebug_Ping.prototype.pingId = $util.Long ? $util.Long.fromBits(0, 0, true) : 0; + + /** + * WARemoteDebug_Ping payload. + * @member {string}payload + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @instance + */ + WARemoteDebug_Ping.prototype.payload = ""; + + /** + * Creates a new WARemoteDebug_Ping instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Ping=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_Ping} WARemoteDebug_Ping instance + */ + WARemoteDebug_Ping.create = function create(properties) { + return new WARemoteDebug_Ping(properties); + }; + + /** + * Encodes the specified WARemoteDebug_Ping message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Ping.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Ping} message WARemoteDebug_Ping message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Ping.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pingId != null && message.hasOwnProperty("pingId")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint64(message.pingId); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.payload); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_Ping message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Ping.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Ping} message WARemoteDebug_Ping message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Ping.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_Ping message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_Ping} WARemoteDebug_Ping + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Ping.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_Ping(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pingId = reader.uint64(); + break; + case 2: + message.payload = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_Ping message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_Ping} WARemoteDebug_Ping + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Ping.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_Ping message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_Ping.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pingId != null && message.hasOwnProperty("pingId")) + if (!$util.isInteger(message.pingId) && !(message.pingId && $util.isInteger(message.pingId.low) && $util.isInteger(message.pingId.high))) + return "pingId: integer|Long expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!$util.isString(message.payload)) + return "payload: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_Ping message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_Ping} WARemoteDebug_Ping + */ + WARemoteDebug_Ping.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_Ping) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_Ping(); + if (object.pingId != null) + if ($util.Long) + (message.pingId = $util.Long.fromValue(object.pingId)).unsigned = true; + else if (typeof object.pingId === "string") + message.pingId = parseInt(object.pingId, 10); + else if (typeof object.pingId === "number") + message.pingId = object.pingId; + else if (typeof object.pingId === "object") + message.pingId = new $util.LongBits(object.pingId.low >>> 0, object.pingId.high >>> 0).toNumber(true); + if (object.payload != null) + message.payload = String(object.payload); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_Ping message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @static + * @param {mmbizwxadevremote.WARemoteDebug_Ping} message WARemoteDebug_Ping + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_Ping.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.pingId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.pingId = options.longs === String ? "0" : 0; + object.payload = ""; + } + if (message.pingId != null && message.hasOwnProperty("pingId")) + if (typeof message.pingId === "number") + object.pingId = options.longs === String ? String(message.pingId) : message.pingId; + else + object.pingId = options.longs === String ? $util.Long.prototype.toString.call(message.pingId) : options.longs === Number ? new $util.LongBits(message.pingId.low >>> 0, message.pingId.high >>> 0).toNumber(true) : message.pingId; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = message.payload; + return object; + }; + + /** + * Converts this WARemoteDebug_Ping to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_Ping + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_Ping.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_Ping; + })(); + + mmbizwxadevremote.WARemoteDebug_Pong = (function() { + + /** + * Properties of a WARemoteDebug_Pong. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_Pong + * @property {number|Long} [pingId] WARemoteDebug_Pong pingId + * @property {number} [networkType] WARemoteDebug_Pong networkType + * @property {string} [payload] WARemoteDebug_Pong payload + */ + + /** + * Constructs a new WARemoteDebug_Pong. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_Pong. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_Pong=} [properties] Properties to set + */ + function WARemoteDebug_Pong(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_Pong pingId. + * @member {number|Long}pingId + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @instance + */ + WARemoteDebug_Pong.prototype.pingId = $util.Long ? $util.Long.fromBits(0, 0, true) : 0; + + /** + * WARemoteDebug_Pong networkType. + * @member {number}networkType + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @instance + */ + WARemoteDebug_Pong.prototype.networkType = 0; + + /** + * WARemoteDebug_Pong payload. + * @member {string}payload + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @instance + */ + WARemoteDebug_Pong.prototype.payload = ""; + + /** + * Creates a new WARemoteDebug_Pong instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Pong=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_Pong} WARemoteDebug_Pong instance + */ + WARemoteDebug_Pong.create = function create(properties) { + return new WARemoteDebug_Pong(properties); + }; + + /** + * Encodes the specified WARemoteDebug_Pong message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Pong.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Pong} message WARemoteDebug_Pong message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Pong.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.pingId != null && message.hasOwnProperty("pingId")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint64(message.pingId); + if (message.networkType != null && message.hasOwnProperty("networkType")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.networkType); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.payload); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_Pong message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_Pong.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_Pong} message WARemoteDebug_Pong message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_Pong.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_Pong message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_Pong} WARemoteDebug_Pong + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Pong.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_Pong(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pingId = reader.uint64(); + break; + case 2: + message.networkType = reader.uint32(); + break; + case 3: + message.payload = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_Pong message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_Pong} WARemoteDebug_Pong + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_Pong.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_Pong message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_Pong.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.pingId != null && message.hasOwnProperty("pingId")) + if (!$util.isInteger(message.pingId) && !(message.pingId && $util.isInteger(message.pingId.low) && $util.isInteger(message.pingId.high))) + return "pingId: integer|Long expected"; + if (message.networkType != null && message.hasOwnProperty("networkType")) + if (!$util.isInteger(message.networkType)) + return "networkType: integer expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!$util.isString(message.payload)) + return "payload: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_Pong message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_Pong} WARemoteDebug_Pong + */ + WARemoteDebug_Pong.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_Pong) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_Pong(); + if (object.pingId != null) + if ($util.Long) + (message.pingId = $util.Long.fromValue(object.pingId)).unsigned = true; + else if (typeof object.pingId === "string") + message.pingId = parseInt(object.pingId, 10); + else if (typeof object.pingId === "number") + message.pingId = object.pingId; + else if (typeof object.pingId === "object") + message.pingId = new $util.LongBits(object.pingId.low >>> 0, object.pingId.high >>> 0).toNumber(true); + if (object.networkType != null) + message.networkType = object.networkType >>> 0; + if (object.payload != null) + message.payload = String(object.payload); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_Pong message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @static + * @param {mmbizwxadevremote.WARemoteDebug_Pong} message WARemoteDebug_Pong + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_Pong.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.pingId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.pingId = options.longs === String ? "0" : 0; + object.networkType = 0; + object.payload = ""; + } + if (message.pingId != null && message.hasOwnProperty("pingId")) + if (typeof message.pingId === "number") + object.pingId = options.longs === String ? String(message.pingId) : message.pingId; + else + object.pingId = options.longs === String ? $util.Long.prototype.toString.call(message.pingId) : options.longs === Number ? new $util.LongBits(message.pingId.low >>> 0, message.pingId.high >>> 0).toNumber(true) : message.pingId; + if (message.networkType != null && message.hasOwnProperty("networkType")) + object.networkType = message.networkType; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = message.payload; + return object; + }; + + /** + * Converts this WARemoteDebug_Pong to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_Pong + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_Pong.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_Pong; + })(); + + mmbizwxadevremote.WARemoteDebug_DomOp = (function() { + + /** + * Properties of a WARemoteDebug_DomOp. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DomOp + * @property {string} [params] WARemoteDebug_DomOp params + * @property {number} [webviewId] WARemoteDebug_DomOp webviewId + */ + + /** + * Constructs a new WARemoteDebug_DomOp. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DomOp. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DomOp=} [properties] Properties to set + */ + function WARemoteDebug_DomOp(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DomOp params. + * @member {string}params + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @instance + */ + WARemoteDebug_DomOp.prototype.params = ""; + + /** + * WARemoteDebug_DomOp webviewId. + * @member {number}webviewId + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @instance + */ + WARemoteDebug_DomOp.prototype.webviewId = 0; + + /** + * Creates a new WARemoteDebug_DomOp instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomOp=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DomOp} WARemoteDebug_DomOp instance + */ + WARemoteDebug_DomOp.create = function create(properties) { + return new WARemoteDebug_DomOp(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DomOp message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DomOp.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomOp} message WARemoteDebug_DomOp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DomOp.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.params != null && message.hasOwnProperty("params")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.params); + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.webviewId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DomOp message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DomOp.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomOp} message WARemoteDebug_DomOp message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DomOp.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DomOp message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DomOp} WARemoteDebug_DomOp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DomOp.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DomOp(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = reader.string(); + break; + case 2: + message.webviewId = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_DomOp message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DomOp} WARemoteDebug_DomOp + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DomOp.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DomOp message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DomOp.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.params != null && message.hasOwnProperty("params")) + if (!$util.isString(message.params)) + return "params: string expected"; + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + if (!$util.isInteger(message.webviewId)) + return "webviewId: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DomOp message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DomOp} WARemoteDebug_DomOp + */ + WARemoteDebug_DomOp.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DomOp) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DomOp(); + if (object.params != null) + message.params = String(object.params); + if (object.webviewId != null) + message.webviewId = object.webviewId >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DomOp message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DomOp} message WARemoteDebug_DomOp + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DomOp.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.params = ""; + object.webviewId = 0; + } + if (message.params != null && message.hasOwnProperty("params")) + object.params = message.params; + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + object.webviewId = message.webviewId; + return object; + }; + + /** + * Converts this WARemoteDebug_DomOp to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DomOp + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DomOp.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DomOp; + })(); + + mmbizwxadevremote.WARemoteDebug_DomEvent = (function() { + + /** + * Properties of a WARemoteDebug_DomEvent. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_DomEvent + * @property {string} [params] WARemoteDebug_DomEvent params + * @property {number} [webviewId] WARemoteDebug_DomEvent webviewId + */ + + /** + * Constructs a new WARemoteDebug_DomEvent. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_DomEvent. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_DomEvent=} [properties] Properties to set + */ + function WARemoteDebug_DomEvent(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_DomEvent params. + * @member {string}params + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @instance + */ + WARemoteDebug_DomEvent.prototype.params = ""; + + /** + * WARemoteDebug_DomEvent webviewId. + * @member {number}webviewId + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @instance + */ + WARemoteDebug_DomEvent.prototype.webviewId = 0; + + /** + * Creates a new WARemoteDebug_DomEvent instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomEvent=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_DomEvent} WARemoteDebug_DomEvent instance + */ + WARemoteDebug_DomEvent.create = function create(properties) { + return new WARemoteDebug_DomEvent(properties); + }; + + /** + * Encodes the specified WARemoteDebug_DomEvent message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DomEvent.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomEvent} message WARemoteDebug_DomEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DomEvent.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.params != null && message.hasOwnProperty("params")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.params); + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + writer.uint32( /* id 2, wireType 0 =*/ 16).uint32(message.webviewId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_DomEvent message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_DomEvent.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_DomEvent} message WARemoteDebug_DomEvent message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_DomEvent.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_DomEvent message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_DomEvent} WARemoteDebug_DomEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DomEvent.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_DomEvent(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = reader.string(); + break; + case 2: + message.webviewId = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_DomEvent message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_DomEvent} WARemoteDebug_DomEvent + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_DomEvent.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_DomEvent message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_DomEvent.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.params != null && message.hasOwnProperty("params")) + if (!$util.isString(message.params)) + return "params: string expected"; + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + if (!$util.isInteger(message.webviewId)) + return "webviewId: integer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_DomEvent message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_DomEvent} WARemoteDebug_DomEvent + */ + WARemoteDebug_DomEvent.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_DomEvent) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_DomEvent(); + if (object.params != null) + message.params = String(object.params); + if (object.webviewId != null) + message.webviewId = object.webviewId >>> 0; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_DomEvent message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @static + * @param {mmbizwxadevremote.WARemoteDebug_DomEvent} message WARemoteDebug_DomEvent + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_DomEvent.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.params = ""; + object.webviewId = 0; + } + if (message.params != null && message.hasOwnProperty("params")) + object.params = message.params; + if (message.webviewId != null && message.hasOwnProperty("webviewId")) + object.webviewId = message.webviewId; + return object; + }; + + /** + * Converts this WARemoteDebug_DomEvent to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_DomEvent + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_DomEvent.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_DomEvent; + })(); + + mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI = (function() { + + /** + * Properties of a WARemoteDebug_NetworkDebugAPI. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_NetworkDebugAPI + * @property {string} [apiName] WARemoteDebug_NetworkDebugAPI apiName + * @property {string} [taskId] WARemoteDebug_NetworkDebugAPI taskId + * @property {string} [requestHeaders] WARemoteDebug_NetworkDebugAPI requestHeaders + * @property {number|Long} [timestamp] WARemoteDebug_NetworkDebugAPI timestamp + */ + + /** + * Constructs a new WARemoteDebug_NetworkDebugAPI. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_NetworkDebugAPI. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_NetworkDebugAPI=} [properties] Properties to set + */ + function WARemoteDebug_NetworkDebugAPI(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_NetworkDebugAPI apiName. + * @member {string}apiName + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @instance + */ + WARemoteDebug_NetworkDebugAPI.prototype.apiName = ""; + + /** + * WARemoteDebug_NetworkDebugAPI taskId. + * @member {string}taskId + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @instance + */ + WARemoteDebug_NetworkDebugAPI.prototype.taskId = ""; + + /** + * WARemoteDebug_NetworkDebugAPI requestHeaders. + * @member {string}requestHeaders + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @instance + */ + WARemoteDebug_NetworkDebugAPI.prototype.requestHeaders = ""; + + /** + * WARemoteDebug_NetworkDebugAPI timestamp. + * @member {number|Long}timestamp + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @instance + */ + WARemoteDebug_NetworkDebugAPI.prototype.timestamp = $util.Long ? $util.Long.fromBits(0, 0, true) : 0; + + /** + * Creates a new WARemoteDebug_NetworkDebugAPI instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NetworkDebugAPI=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI} WARemoteDebug_NetworkDebugAPI instance + */ + WARemoteDebug_NetworkDebugAPI.create = function create(properties) { + return new WARemoteDebug_NetworkDebugAPI(properties); + }; + + /** + * Encodes the specified WARemoteDebug_NetworkDebugAPI message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NetworkDebugAPI} message WARemoteDebug_NetworkDebugAPI message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NetworkDebugAPI.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.apiName != null && message.hasOwnProperty("apiName")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.apiName); + if (message.taskId != null && message.hasOwnProperty("taskId")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.taskId); + if (message.requestHeaders != null && message.hasOwnProperty("requestHeaders")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.requestHeaders); + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + writer.uint32( /* id 4, wireType 0 =*/ 32).uint64(message.timestamp); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_NetworkDebugAPI message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_NetworkDebugAPI} message WARemoteDebug_NetworkDebugAPI message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_NetworkDebugAPI.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_NetworkDebugAPI message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI} WARemoteDebug_NetworkDebugAPI + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NetworkDebugAPI.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.apiName = reader.string(); + break; + case 2: + message.taskId = reader.string(); + break; + case 3: + message.requestHeaders = reader.string(); + break; + case 4: + message.timestamp = reader.uint64(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_NetworkDebugAPI message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI} WARemoteDebug_NetworkDebugAPI + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_NetworkDebugAPI.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_NetworkDebugAPI message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_NetworkDebugAPI.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.apiName != null && message.hasOwnProperty("apiName")) + if (!$util.isString(message.apiName)) + return "apiName: string expected"; + if (message.taskId != null && message.hasOwnProperty("taskId")) + if (!$util.isString(message.taskId)) + return "taskId: string expected"; + if (message.requestHeaders != null && message.hasOwnProperty("requestHeaders")) + if (!$util.isString(message.requestHeaders)) + return "requestHeaders: string expected"; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) + return "timestamp: integer|Long expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_NetworkDebugAPI message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI} WARemoteDebug_NetworkDebugAPI + */ + WARemoteDebug_NetworkDebugAPI.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI(); + if (object.apiName != null) + message.apiName = String(object.apiName); + if (object.taskId != null) + message.taskId = String(object.taskId); + if (object.requestHeaders != null) + message.requestHeaders = String(object.requestHeaders); + if (object.timestamp != null) + if ($util.Long) + (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true; + else if (typeof object.timestamp === "string") + message.timestamp = parseInt(object.timestamp, 10); + else if (typeof object.timestamp === "number") + message.timestamp = object.timestamp; + else if (typeof object.timestamp === "object") + message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_NetworkDebugAPI message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @static + * @param {mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI} message WARemoteDebug_NetworkDebugAPI + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_NetworkDebugAPI.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.apiName = ""; + object.taskId = ""; + object.requestHeaders = ""; + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timestamp = options.longs === String ? "0" : 0; + } + if (message.apiName != null && message.hasOwnProperty("apiName")) + object.apiName = message.apiName; + if (message.taskId != null && message.hasOwnProperty("taskId")) + object.taskId = message.taskId; + if (message.requestHeaders != null && message.hasOwnProperty("requestHeaders")) + object.requestHeaders = message.requestHeaders; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (typeof message.timestamp === "number") + object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; + else + object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp; + return object; + }; + + /** + * Converts this WARemoteDebug_NetworkDebugAPI to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_NetworkDebugAPI + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_NetworkDebugAPI.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_NetworkDebugAPI; + })(); + + mmbizwxadevremote.WARemoteDebug_ChromeDevtools = (function() { + + /** + * Properties of a WARemoteDebug_ChromeDevtools. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_ChromeDevtools + * @property {number|Long} [opId] WARemoteDebug_ChromeDevtools opId + * @property {string} [payload] WARemoteDebug_ChromeDevtools payload + * @property {string} [jscontextId] WARemoteDebug_ChromeDevtools jscontextId + */ + + /** + * Constructs a new WARemoteDebug_ChromeDevtools. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_ChromeDevtools. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtools=} [properties] Properties to set + */ + function WARemoteDebug_ChromeDevtools(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_ChromeDevtools opId. + * @member {number|Long}opId + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @instance + */ + WARemoteDebug_ChromeDevtools.prototype.opId = $util.Long ? $util.Long.fromBits(0, 0, true) : 0; + + /** + * WARemoteDebug_ChromeDevtools payload. + * @member {string}payload + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @instance + */ + WARemoteDebug_ChromeDevtools.prototype.payload = ""; + + /** + * WARemoteDebug_ChromeDevtools jscontextId. + * @member {string}jscontextId + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @instance + */ + WARemoteDebug_ChromeDevtools.prototype.jscontextId = ""; + + /** + * Creates a new WARemoteDebug_ChromeDevtools instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtools=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtools} WARemoteDebug_ChromeDevtools instance + */ + WARemoteDebug_ChromeDevtools.create = function create(properties) { + return new WARemoteDebug_ChromeDevtools(properties); + }; + + /** + * Encodes the specified WARemoteDebug_ChromeDevtools message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ChromeDevtools.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtools} message WARemoteDebug_ChromeDevtools message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ChromeDevtools.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.opId != null && message.hasOwnProperty("opId")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint64(message.opId); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.payload); + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.jscontextId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_ChromeDevtools message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ChromeDevtools.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtools} message WARemoteDebug_ChromeDevtools message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ChromeDevtools.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_ChromeDevtools message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtools} WARemoteDebug_ChromeDevtools + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ChromeDevtools.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtools(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.opId = reader.uint64(); + break; + case 2: + message.payload = reader.string(); + break; + case 3: + message.jscontextId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_ChromeDevtools message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtools} WARemoteDebug_ChromeDevtools + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ChromeDevtools.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_ChromeDevtools message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_ChromeDevtools.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.opId != null && message.hasOwnProperty("opId")) + if (!$util.isInteger(message.opId) && !(message.opId && $util.isInteger(message.opId.low) && $util.isInteger(message.opId.high))) + return "opId: integer|Long expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!$util.isString(message.payload)) + return "payload: string expected"; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + if (!$util.isString(message.jscontextId)) + return "jscontextId: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_ChromeDevtools message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtools} WARemoteDebug_ChromeDevtools + */ + WARemoteDebug_ChromeDevtools.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtools) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtools(); + if (object.opId != null) + if ($util.Long) + (message.opId = $util.Long.fromValue(object.opId)).unsigned = true; + else if (typeof object.opId === "string") + message.opId = parseInt(object.opId, 10); + else if (typeof object.opId === "number") + message.opId = object.opId; + else if (typeof object.opId === "object") + message.opId = new $util.LongBits(object.opId.low >>> 0, object.opId.high >>> 0).toNumber(true); + if (object.payload != null) + message.payload = String(object.payload); + if (object.jscontextId != null) + message.jscontextId = String(object.jscontextId); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_ChromeDevtools message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @static + * @param {mmbizwxadevremote.WARemoteDebug_ChromeDevtools} message WARemoteDebug_ChromeDevtools + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_ChromeDevtools.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.opId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.opId = options.longs === String ? "0" : 0; + object.payload = ""; + object.jscontextId = ""; + } + if (message.opId != null && message.hasOwnProperty("opId")) + if (typeof message.opId === "number") + object.opId = options.longs === String ? String(message.opId) : message.opId; + else + object.opId = options.longs === String ? $util.Long.prototype.toString.call(message.opId) : options.longs === Number ? new $util.LongBits(message.opId.low >>> 0, message.opId.high >>> 0).toNumber(true) : message.opId; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = message.payload; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + object.jscontextId = message.jscontextId; + return object; + }; + + /** + * Converts this WARemoteDebug_ChromeDevtools to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtools + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_ChromeDevtools.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_ChromeDevtools; + })(); + + mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult = (function() { + + /** + * Properties of a WARemoteDebug_ChromeDevtoolsResult. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_ChromeDevtoolsResult + * @property {number|Long} [opId] WARemoteDebug_ChromeDevtoolsResult opId + * @property {string} [payload] WARemoteDebug_ChromeDevtoolsResult payload + * @property {string} [jscontextId] WARemoteDebug_ChromeDevtoolsResult jscontextId + */ + + /** + * Constructs a new WARemoteDebug_ChromeDevtoolsResult. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_ChromeDevtoolsResult. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtoolsResult=} [properties] Properties to set + */ + function WARemoteDebug_ChromeDevtoolsResult(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_ChromeDevtoolsResult opId. + * @member {number|Long}opId + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @instance + */ + WARemoteDebug_ChromeDevtoolsResult.prototype.opId = $util.Long ? $util.Long.fromBits(0, 0, true) : 0; + + /** + * WARemoteDebug_ChromeDevtoolsResult payload. + * @member {string}payload + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @instance + */ + WARemoteDebug_ChromeDevtoolsResult.prototype.payload = ""; + + /** + * WARemoteDebug_ChromeDevtoolsResult jscontextId. + * @member {string}jscontextId + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @instance + */ + WARemoteDebug_ChromeDevtoolsResult.prototype.jscontextId = ""; + + /** + * Creates a new WARemoteDebug_ChromeDevtoolsResult instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtoolsResult=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult} WARemoteDebug_ChromeDevtoolsResult instance + */ + WARemoteDebug_ChromeDevtoolsResult.create = function create(properties) { + return new WARemoteDebug_ChromeDevtoolsResult(properties); + }; + + /** + * Encodes the specified WARemoteDebug_ChromeDevtoolsResult message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtoolsResult} message WARemoteDebug_ChromeDevtoolsResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ChromeDevtoolsResult.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.opId != null && message.hasOwnProperty("opId")) + writer.uint32( /* id 1, wireType 0 =*/ 8).uint64(message.opId); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.payload); + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + writer.uint32( /* id 3, wireType 2 =*/ 26).string(message.jscontextId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_ChromeDevtoolsResult message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ChromeDevtoolsResult} message WARemoteDebug_ChromeDevtoolsResult message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ChromeDevtoolsResult.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_ChromeDevtoolsResult message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult} WARemoteDebug_ChromeDevtoolsResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ChromeDevtoolsResult.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.opId = reader.uint64(); + break; + case 2: + message.payload = reader.string(); + break; + case 3: + message.jscontextId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_ChromeDevtoolsResult message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult} WARemoteDebug_ChromeDevtoolsResult + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ChromeDevtoolsResult.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_ChromeDevtoolsResult message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_ChromeDevtoolsResult.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.opId != null && message.hasOwnProperty("opId")) + if (!$util.isInteger(message.opId) && !(message.opId && $util.isInteger(message.opId.low) && $util.isInteger(message.opId.high))) + return "opId: integer|Long expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!$util.isString(message.payload)) + return "payload: string expected"; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + if (!$util.isString(message.jscontextId)) + return "jscontextId: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_ChromeDevtoolsResult message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult} WARemoteDebug_ChromeDevtoolsResult + */ + WARemoteDebug_ChromeDevtoolsResult.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult(); + if (object.opId != null) + if ($util.Long) + (message.opId = $util.Long.fromValue(object.opId)).unsigned = true; + else if (typeof object.opId === "string") + message.opId = parseInt(object.opId, 10); + else if (typeof object.opId === "number") + message.opId = object.opId; + else if (typeof object.opId === "object") + message.opId = new $util.LongBits(object.opId.low >>> 0, object.opId.high >>> 0).toNumber(true); + if (object.payload != null) + message.payload = String(object.payload); + if (object.jscontextId != null) + message.jscontextId = String(object.jscontextId); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_ChromeDevtoolsResult message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @static + * @param {mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult} message WARemoteDebug_ChromeDevtoolsResult + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_ChromeDevtoolsResult.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + if ($util.Long) { + var long = new $util.Long(0, 0, true); + object.opId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.opId = options.longs === String ? "0" : 0; + object.payload = ""; + object.jscontextId = ""; + } + if (message.opId != null && message.hasOwnProperty("opId")) + if (typeof message.opId === "number") + object.opId = options.longs === String ? String(message.opId) : message.opId; + else + object.opId = options.longs === String ? $util.Long.prototype.toString.call(message.opId) : options.longs === Number ? new $util.LongBits(message.opId.low >>> 0, message.opId.high >>> 0).toNumber(true) : message.opId; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = message.payload; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + object.jscontextId = message.jscontextId; + return object; + }; + + /** + * Converts this WARemoteDebug_ChromeDevtoolsResult to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_ChromeDevtoolsResult + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_ChromeDevtoolsResult.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_ChromeDevtoolsResult; + })(); + + mmbizwxadevremote.WARemoteDebug_AddJsContext = (function() { + + /** + * Properties of a WARemoteDebug_AddJsContext. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_AddJsContext + * @property {string} [jscontextId] WARemoteDebug_AddJsContext jscontextId + * @property {string} [jscontextName] WARemoteDebug_AddJsContext jscontextName + */ + + /** + * Constructs a new WARemoteDebug_AddJsContext. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_AddJsContext. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_AddJsContext=} [properties] Properties to set + */ + function WARemoteDebug_AddJsContext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_AddJsContext jscontextId. + * @member {string}jscontextId + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @instance + */ + WARemoteDebug_AddJsContext.prototype.jscontextId = ""; + + /** + * WARemoteDebug_AddJsContext jscontextName. + * @member {string}jscontextName + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @instance + */ + WARemoteDebug_AddJsContext.prototype.jscontextName = ""; + + /** + * Creates a new WARemoteDebug_AddJsContext instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_AddJsContext=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_AddJsContext} WARemoteDebug_AddJsContext instance + */ + WARemoteDebug_AddJsContext.create = function create(properties) { + return new WARemoteDebug_AddJsContext(properties); + }; + + /** + * Encodes the specified WARemoteDebug_AddJsContext message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_AddJsContext.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_AddJsContext} message WARemoteDebug_AddJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_AddJsContext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.jscontextId); + if (message.jscontextName != null && message.hasOwnProperty("jscontextName")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.jscontextName); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_AddJsContext message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_AddJsContext.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_AddJsContext} message WARemoteDebug_AddJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_AddJsContext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_AddJsContext message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_AddJsContext} WARemoteDebug_AddJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_AddJsContext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_AddJsContext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.jscontextId = reader.string(); + break; + case 2: + message.jscontextName = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_AddJsContext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_AddJsContext} WARemoteDebug_AddJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_AddJsContext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_AddJsContext message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_AddJsContext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + if (!$util.isString(message.jscontextId)) + return "jscontextId: string expected"; + if (message.jscontextName != null && message.hasOwnProperty("jscontextName")) + if (!$util.isString(message.jscontextName)) + return "jscontextName: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_AddJsContext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_AddJsContext} WARemoteDebug_AddJsContext + */ + WARemoteDebug_AddJsContext.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_AddJsContext) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_AddJsContext(); + if (object.jscontextId != null) + message.jscontextId = String(object.jscontextId); + if (object.jscontextName != null) + message.jscontextName = String(object.jscontextName); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_AddJsContext message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @static + * @param {mmbizwxadevremote.WARemoteDebug_AddJsContext} message WARemoteDebug_AddJsContext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_AddJsContext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.jscontextId = ""; + object.jscontextName = ""; + } + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + object.jscontextId = message.jscontextId; + if (message.jscontextName != null && message.hasOwnProperty("jscontextName")) + object.jscontextName = message.jscontextName; + return object; + }; + + /** + * Converts this WARemoteDebug_AddJsContext to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_AddJsContext + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_AddJsContext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_AddJsContext; + })(); + + mmbizwxadevremote.WARemoteDebug_RemoveJsContext = (function() { + + /** + * Properties of a WARemoteDebug_RemoveJsContext. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_RemoveJsContext + * @property {string} [jscontextId] WARemoteDebug_RemoveJsContext jscontextId + */ + + /** + * Constructs a new WARemoteDebug_RemoveJsContext. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_RemoveJsContext. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_RemoveJsContext=} [properties] Properties to set + */ + function WARemoteDebug_RemoveJsContext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_RemoveJsContext jscontextId. + * @member {string}jscontextId + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @instance + */ + WARemoteDebug_RemoveJsContext.prototype.jscontextId = ""; + + /** + * Creates a new WARemoteDebug_RemoveJsContext instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RemoveJsContext=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_RemoveJsContext} WARemoteDebug_RemoveJsContext instance + */ + WARemoteDebug_RemoveJsContext.create = function create(properties) { + return new WARemoteDebug_RemoveJsContext(properties); + }; + + /** + * Encodes the specified WARemoteDebug_RemoveJsContext message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RemoveJsContext.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RemoveJsContext} message WARemoteDebug_RemoveJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RemoveJsContext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.jscontextId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_RemoveJsContext message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_RemoveJsContext.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_RemoveJsContext} message WARemoteDebug_RemoveJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_RemoveJsContext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_RemoveJsContext message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_RemoveJsContext} WARemoteDebug_RemoveJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RemoveJsContext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_RemoveJsContext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.jscontextId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_RemoveJsContext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_RemoveJsContext} WARemoteDebug_RemoveJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_RemoveJsContext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_RemoveJsContext message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_RemoveJsContext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + if (!$util.isString(message.jscontextId)) + return "jscontextId: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_RemoveJsContext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_RemoveJsContext} WARemoteDebug_RemoveJsContext + */ + WARemoteDebug_RemoveJsContext.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_RemoveJsContext) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_RemoveJsContext(); + if (object.jscontextId != null) + message.jscontextId = String(object.jscontextId); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_RemoveJsContext message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @static + * @param {mmbizwxadevremote.WARemoteDebug_RemoveJsContext} message WARemoteDebug_RemoveJsContext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_RemoveJsContext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.jscontextId = ""; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + object.jscontextId = message.jscontextId; + return object; + }; + + /** + * Converts this WARemoteDebug_RemoveJsContext to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_RemoveJsContext + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_RemoveJsContext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_RemoveJsContext; + })(); + + mmbizwxadevremote.WARemoteDebug_ConnectJsContext = (function() { + + /** + * Properties of a WARemoteDebug_ConnectJsContext. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_ConnectJsContext + * @property {string} [jscontextId] WARemoteDebug_ConnectJsContext jscontextId + */ + + /** + * Constructs a new WARemoteDebug_ConnectJsContext. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_ConnectJsContext. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_ConnectJsContext=} [properties] Properties to set + */ + function WARemoteDebug_ConnectJsContext(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_ConnectJsContext jscontextId. + * @member {string}jscontextId + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @instance + */ + WARemoteDebug_ConnectJsContext.prototype.jscontextId = ""; + + /** + * Creates a new WARemoteDebug_ConnectJsContext instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ConnectJsContext=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_ConnectJsContext} WARemoteDebug_ConnectJsContext instance + */ + WARemoteDebug_ConnectJsContext.create = function create(properties) { + return new WARemoteDebug_ConnectJsContext(properties); + }; + + /** + * Encodes the specified WARemoteDebug_ConnectJsContext message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ConnectJsContext.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ConnectJsContext} message WARemoteDebug_ConnectJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ConnectJsContext.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.jscontextId); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_ConnectJsContext message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_ConnectJsContext.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_ConnectJsContext} message WARemoteDebug_ConnectJsContext message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_ConnectJsContext.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_ConnectJsContext message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_ConnectJsContext} WARemoteDebug_ConnectJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ConnectJsContext.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_ConnectJsContext(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.jscontextId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_ConnectJsContext message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_ConnectJsContext} WARemoteDebug_ConnectJsContext + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_ConnectJsContext.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_ConnectJsContext message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_ConnectJsContext.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + if (!$util.isString(message.jscontextId)) + return "jscontextId: string expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_ConnectJsContext message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_ConnectJsContext} WARemoteDebug_ConnectJsContext + */ + WARemoteDebug_ConnectJsContext.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_ConnectJsContext) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_ConnectJsContext(); + if (object.jscontextId != null) + message.jscontextId = String(object.jscontextId); + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_ConnectJsContext message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @static + * @param {mmbizwxadevremote.WARemoteDebug_ConnectJsContext} message WARemoteDebug_ConnectJsContext + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_ConnectJsContext.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.jscontextId = ""; + if (message.jscontextId != null && message.hasOwnProperty("jscontextId")) + object.jscontextId = message.jscontextId; + return object; + }; + + /** + * Converts this WARemoteDebug_ConnectJsContext to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_ConnectJsContext + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_ConnectJsContext.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_ConnectJsContext; + })(); + + mmbizwxadevremote.WARemoteDebug_CustomMessage = (function() { + + /** + * Properties of a WARemoteDebug_CustomMessage. + * @memberof mmbizwxadevremote + * @interface IWARemoteDebug_CustomMessage + * @property {string} [method] WARemoteDebug_CustomMessage method + * @property {string} [payload] WARemoteDebug_CustomMessage payload + * @property {Uint8Array} [raw] WARemoteDebug_CustomMessage raw + */ + + /** + * Constructs a new WARemoteDebug_CustomMessage. + * @memberof mmbizwxadevremote + * @classdesc Represents a WARemoteDebug_CustomMessage. + * @constructor + * @param {mmbizwxadevremote.IWARemoteDebug_CustomMessage=} [properties] Properties to set + */ + function WARemoteDebug_CustomMessage(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * WARemoteDebug_CustomMessage method. + * @member {string}method + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @instance + */ + WARemoteDebug_CustomMessage.prototype.method = ""; + + /** + * WARemoteDebug_CustomMessage payload. + * @member {string}payload + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @instance + */ + WARemoteDebug_CustomMessage.prototype.payload = ""; + + /** + * WARemoteDebug_CustomMessage raw. + * @member {Uint8Array}raw + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @instance + */ + WARemoteDebug_CustomMessage.prototype.raw = $util.newBuffer([]); + + /** + * Creates a new WARemoteDebug_CustomMessage instance using the specified properties. + * @function create + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CustomMessage=} [properties] Properties to set + * @returns {mmbizwxadevremote.WARemoteDebug_CustomMessage} WARemoteDebug_CustomMessage instance + */ + WARemoteDebug_CustomMessage.create = function create(properties) { + return new WARemoteDebug_CustomMessage(properties); + }; + + /** + * Encodes the specified WARemoteDebug_CustomMessage message. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CustomMessage.verify|verify} messages. + * @function encode + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CustomMessage} message WARemoteDebug_CustomMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CustomMessage.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.method != null && message.hasOwnProperty("method")) + writer.uint32( /* id 1, wireType 2 =*/ 10).string(message.method); + if (message.payload != null && message.hasOwnProperty("payload")) + writer.uint32( /* id 2, wireType 2 =*/ 18).string(message.payload); + if (message.raw != null && message.hasOwnProperty("raw")) + writer.uint32( /* id 3, wireType 2 =*/ 26).bytes(message.raw); + return writer; + }; + + /** + * Encodes the specified WARemoteDebug_CustomMessage message, length delimited. Does not implicitly {@link mmbizwxadevremote.WARemoteDebug_CustomMessage.verify|verify} messages. + * @function encodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {mmbizwxadevremote.IWARemoteDebug_CustomMessage} message WARemoteDebug_CustomMessage message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + WARemoteDebug_CustomMessage.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a WARemoteDebug_CustomMessage message from the specified reader or buffer. + * @function decode + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {mmbizwxadevremote.WARemoteDebug_CustomMessage} WARemoteDebug_CustomMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CustomMessage.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, + message = new $root.mmbizwxadevremote.WARemoteDebug_CustomMessage(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.method = reader.string(); + break; + case 2: + message.payload = reader.string(); + break; + case 3: + message.raw = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a WARemoteDebug_CustomMessage message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {mmbizwxadevremote.WARemoteDebug_CustomMessage} WARemoteDebug_CustomMessage + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + WARemoteDebug_CustomMessage.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a WARemoteDebug_CustomMessage message. + * @function verify + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + WARemoteDebug_CustomMessage.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.method != null && message.hasOwnProperty("method")) + if (!$util.isString(message.method)) + return "method: string expected"; + if (message.payload != null && message.hasOwnProperty("payload")) + if (!$util.isString(message.payload)) + return "payload: string expected"; + if (message.raw != null && message.hasOwnProperty("raw")) + if (!(message.raw && typeof message.raw.length === "number" || $util.isString(message.raw))) + return "raw: buffer expected"; + return null; + }; + + /** + * Creates a WARemoteDebug_CustomMessage message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {Object.} object Plain object + * @returns {mmbizwxadevremote.WARemoteDebug_CustomMessage} WARemoteDebug_CustomMessage + */ + WARemoteDebug_CustomMessage.fromObject = function fromObject(object) { + if (object instanceof $root.mmbizwxadevremote.WARemoteDebug_CustomMessage) + return object; + var message = new $root.mmbizwxadevremote.WARemoteDebug_CustomMessage(); + if (object.method != null) + message.method = String(object.method); + if (object.payload != null) + message.payload = String(object.payload); + if (object.raw != null) + if (typeof object.raw === "string") + $util.base64.decode(object.raw, message.raw = $util.newBuffer($util.base64.length(object.raw)), 0); + else if (object.raw.length) + message.raw = object.raw; + return message; + }; + + /** + * Creates a plain object from a WARemoteDebug_CustomMessage message. Also converts values to other types if specified. + * @function toObject + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @static + * @param {mmbizwxadevremote.WARemoteDebug_CustomMessage} message WARemoteDebug_CustomMessage + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + WARemoteDebug_CustomMessage.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.method = ""; + object.payload = ""; + object.raw = options.bytes === String ? "" : []; + } + if (message.method != null && message.hasOwnProperty("method")) + object.method = message.method; + if (message.payload != null && message.hasOwnProperty("payload")) + object.payload = message.payload; + if (message.raw != null && message.hasOwnProperty("raw")) + object.raw = options.bytes === String ? $util.base64.encode(message.raw, 0, message.raw.length) : options.bytes === Array ? Array.prototype.slice.call(message.raw) : message.raw; + return object; + }; + + /** + * Converts this WARemoteDebug_CustomMessage to JSON. + * @function toJSON + * @memberof mmbizwxadevremote.WARemoteDebug_CustomMessage + * @instance + * @returns {Object.} JSON object + */ + WARemoteDebug_CustomMessage.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return WARemoteDebug_CustomMessage; + })(); + + return mmbizwxadevremote; +})(); + +module.exports = $root; \ No newline at end of file diff --git a/scripts/wechat4_ws_bridge.js b/scripts/wechat4_ws_bridge.js new file mode 100644 index 0000000..627718a --- /dev/null +++ b/scripts/wechat4_ws_bridge.js @@ -0,0 +1,451 @@ +"use strict"; + +// Bridge flow inspired by the public WMPFDebugger project: +// https://github.com/evi0s/WMPFDebugger +// This variant keeps the websocket/protocol compatibility work local to this +// repository and is driven by the Python launcher in utils/wechat4debug.py. + +const { WebSocketServer, WebSocket } = require("ws"); + +let codex; +let messageProto; +let constants; + +try { + codex = require("./wechat4_third_party/RemoteDebugCodex.js"); + messageProto = require("./wechat4_third_party/WARemoteDebugProtobuf.js"); + constants = require("./wechat4_third_party/RemoteDebugConstants.js"); +} catch (error) { + console.error( + "failed to load WeChat 4 bridge dependencies. Run `npm install` first. " + + (error && error.stack ? error.stack : String(error)), + ); + process.exit(1); +} + +const DEBUG_PORT = Number(process.argv[2] || process.env.WECHAT4_DEBUG_PORT || 9421); +const CDP_PORT = Number(process.argv[3] || process.env.WECHAT4_CDP_PORT || 62000); + +if (!Number.isInteger(DEBUG_PORT) || DEBUG_PORT < 1 || DEBUG_PORT > 65535) { + throw new Error(`invalid debug port: ${DEBUG_PORT}`); +} +if (!Number.isInteger(CDP_PORT) || CDP_PORT < 1 || CDP_PORT > 65535) { + throw new Error(`invalid cdp port: ${CDP_PORT}`); +} + +let messageCounter = 0; +let notifyCounter = 0; +const MAX_PENDING_CDP_MESSAGES = 200; +const VALID_CLIENT_REQUEST_CMDS = new Set([ + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 2000, + 2006, + 3001, + 3002, + 3003, +]); + +const debugClients = new Set(); +const cdpClients = new Set(); +const debugClientState = new WeakMap(); +const pendingCdpMessages = []; + +function log(message) { + process.stdout.write(`${message}\n`); +} + +function warn(message) { + process.stderr.write(`${message}\n`); +} + +function hexPreview(buffer, length = 64) { + return Buffer.from(buffer).subarray(0, length).toString("hex"); +} + +function normalizeDebugMessage(debugMessage) { + if (!debugMessage) { + return null; + } + return { + seq: typeof debugMessage.seq === "number" ? debugMessage.seq : 0, + delay: typeof debugMessage.delay === "number" ? debugMessage.delay : 0, + category: debugMessage.category ?? null, + compress_algo: + typeof debugMessage.compress_algo === "number" ? debugMessage.compress_algo : 0, + payload: + debugMessage.data && typeof debugMessage.data.payload === "string" + ? debugMessage.data.payload + : null, + data: debugMessage.data ?? null, + }; +} + +function encodeRawDebugPayload(payload) { + const rawPayload = { + jscontext_id: "", + op_id: Math.round(100 * Math.random()), + payload: String(payload ?? ""), + }; + const wrappedData = codex.wrapDebugMessageData(rawPayload, "chromeDevtools", 0); + const outData = { + seq: ++messageCounter, + category: "chromeDevtools", + data: wrappedData.buffer, + compressAlgo: 0, + originalSize: wrappedData.originalSize, + }; + return messageProto.mmbizwxadevremote.WARemoteDebug_DebugMessage.encode(outData).finish(); +} + +function encodeClientResponse(responseType, uuid, payload) { + return codex.wrapClientResponseDataFormatToProto( + payload, + responseType, + uuid ?? "", + ); +} + +function encodeClientNotify(payload, uuid) { + const debugMessage = { + seq: ++notifyCounter, + delay: 0, + category: constants.DebugMessageCategory.ChromeDevtools, + compress_algo: 0, + data: { + jscontext_id: "", + op_id: Math.round(100 * Math.random()), + payload: String(payload ?? ""), + }, + }; + return codex.wrapClientResponseDataFormatToProto( + { + debug_message: [debugMessage], + }, + constants.ClientResponseType.MessageNotifyParallelly, + uuid ?? "", + ); +} + +function decodeRawDebugMessage(rawMessage) { + const decodedData = + messageProto.mmbizwxadevremote.WARemoteDebug_DebugMessage.decode(rawMessage); + const unwrappedData = codex.unwrapDebugMessageData(decodedData); + if (!unwrappedData || !unwrappedData.category) { + return null; + } + + return { + frame_type: "debug_message", + debug_messages: [ + normalizeDebugMessage({ + seq: decodedData.seq, + delay: decodedData.delay, + category: unwrappedData.category, + compress_algo: decodedData.compressAlgo, + data: unwrappedData.data, + }), + ], + }; +} + +function decodeClientFrame(rawMessage) { + const originalConsoleError = console.error; + let decoded; + try { + console.error = () => {}; + decoded = codex.unwrapClientProtoToDataFormat(rawMessage); + } finally { + console.error = originalConsoleError; + } + if ( + !decoded || + typeof decoded.cmd !== "number" || + decoded.cmd === constants.ClientRequestCmd.Unknown || + !VALID_CLIENT_REQUEST_CMDS.has(decoded.cmd) + ) { + return null; + } + + let debugMessages = []; + if (Array.isArray(decoded.data && decoded.data.debug_message)) { + debugMessages = decoded.data.debug_message.map(normalizeDebugMessage).filter(Boolean); + } + + return { + frame_type: "client_request", + cmd: decoded.cmd, + comment: decoded._comment ?? null, + uuid: decoded.uuid ?? "", + data: decoded.data ?? {}, + debug_messages: debugMessages, + }; +} + +function decodeFrame(rawMessage) { + const errors = []; + + try { + const clientFrame = decodeClientFrame(rawMessage); + if (clientFrame) { + return clientFrame; + } + } catch (error) { + errors.push(`client_frame: ${error && error.message ? error.message : String(error)}`); + } + + try { + const debugFrame = decodeRawDebugMessage(rawMessage); + if (debugFrame) { + return debugFrame; + } + } catch (error) { + errors.push(`debug_frame: ${error && error.message ? error.message : String(error)}`); + } + + return { + frame_type: "unknown", + errors, + preview_hex: hexPreview(rawMessage), + byte_length: rawMessage.byteLength, + preview_bytes: Array.from(Buffer.from(rawMessage).subarray(0, 16)), + }; +} + +function forwardDebugMessages(debugMessages) { + for (const debugMessage of debugMessages || []) { + if (debugMessage.category !== "chromeDevtoolsResult" || !debugMessage.payload) { + continue; + } + + for (const client of cdpClients) { + if (client.readyState === WebSocket.OPEN) { + client.send(debugMessage.payload); + } + } + } +} + +function respondClientRequest(ws, frame) { + const cmd = frame.cmd; + const uuid = String(frame.uuid || ""); + const data = frame.data || {}; + const debugMessages = frame.debug_messages || []; + let encoded = null; + + if (cmd === 1002) { + encoded = encodeClientResponse(1002, uuid, { + base_response: { errcode: 0, errmsg: "" }, + room_info: { + join_room: 1, + original_md5: "", + room_status: 1, + wx_conn_status: 1, + dev_conn_status: 1, + room_id: "", + }, + }); + } else if (cmd === 1003) { + encoded = encodeClientResponse(1003, uuid, { + base_response: { errcode: 0, errmsg: "" }, + }); + } else if (cmd === 1001) { + encoded = encodeClientResponse(1001, uuid, { + base_response: { errcode: 0, errmsg: "" }, + }); + } else if (cmd === 1005) { + const sendAck = Number(data.max_seq || data.min_seq || 0); + encoded = encodeClientResponse(1005, uuid, { + base_response: { errcode: 0, errmsg: "" }, + debug_message: [], + send_ack: sendAck, + }); + } else if (cmd === 1006) { + const seqValues = debugMessages + .map((item) => (typeof item.seq === "number" ? item.seq : 0)); + const minAck = seqValues.length ? Math.min(...seqValues) : 0; + const maxAck = seqValues.length ? Math.max(...seqValues) : 0; + encoded = encodeClientResponse(1006, uuid, { + base_response: { errcode: 0, errmsg: "" }, + min_ack: minAck, + max_ack: maxAck, + }); + } else if (cmd === 1004) { + encoded = encodeClientResponse(1004, uuid, { + base_response: { errcode: 0, errmsg: "" }, + }); + } + + if (!encoded) { + warn(`[!] 暂未处理的客户端控制帧 cmd=${cmd}`); + return; + } + + if (ws.readyState === WebSocket.OPEN) { + ws.send(encoded); + } +} + +function enqueueCdpMessage(message) { + pendingCdpMessages.push(String(message ?? "")); + if (pendingCdpMessages.length > MAX_PENDING_CDP_MESSAGES) { + pendingCdpMessages.splice(0, pendingCdpMessages.length - MAX_PENDING_CDP_MESSAGES); + } +} + +function sendCdpMessageToDebugClient(client, text) { + if (client.readyState !== WebSocket.OPEN) { + return false; + } + + const state = debugClientState.get(client) || { + protocolMode: "raw_debug", + uuid: "", + }; + const encoded = + state.protocolMode === "client_data_format" + ? encodeClientNotify(text, state.uuid) + : encodeRawDebugPayload(text); + client.send(encoded); + return true; +} + +function broadcastCdpMessageToDebugClients(text) { + let sent = false; + for (const client of debugClients) { + if (sendCdpMessageToDebugClient(client, text)) { + sent = true; + } + } + return sent; +} + +function flushPendingCdpMessages() { + if (pendingCdpMessages.length === 0 || debugClients.size === 0) { + return; + } + + log(`[proto] 正在回放 ${pendingCdpMessages.length} 条缓存的 DevTools 消息`); + const queued = pendingCdpMessages.splice(0, pendingCdpMessages.length); + for (const message of queued) { + broadcastCdpMessageToDebugClients(message); + } +} + +const debugServer = new WebSocketServer({ + port: DEBUG_PORT, + perMessageDeflate: true, +}); + +const cdpServer = new WebSocketServer({ + port: CDP_PORT, + perMessageDeflate: true, +}); + +log(`[+] 微信4调试服务已启动 ws://127.0.0.1:${DEBUG_PORT}`); +log(`[+] DevTools 代理已启动 ws://127.0.0.1:${CDP_PORT}`); +log( + "[+] 使用顺序:先打开要调试的小程序,看到“微信4小程序调试客户端已连接”后,再打开下面的 DevTools 链接", +); +log(` devtools://devtools/bundled/inspector.html?ws=127.0.0.1:${CDP_PORT}`); +log("[+] 现在请先启动需要调试的小程序"); + +debugServer.on("connection", (ws, req) => { + debugClients.add(ws); + debugClientState.set(ws, { + protocolMode: "raw_debug", + uuid: "", + }); + log("[+] 微信4小程序调试客户端已连接"); + log( + `[proto] 小程序连接请求头: path=${req.url || "/"} extensions=${req.headers["sec-websocket-extensions"] || "None"} ` + + `protocol=${req.headers["sec-websocket-protocol"] || "None"} ` + + `user-agent=${req.headers["user-agent"] || "None"}`, + ); + log(`[proto] 小程序连接协商结果: accepted_extensions=${ws.extensions || "None"}`); + + ws.on("message", (message, isBinary) => { + if (!isBinary) { + warn(`[!] 收到非二进制调试帧 type=${typeof message},已忽略`); + return; + } + + const rawMessage = Buffer.isBuffer(message) ? message : Buffer.from(message); + const frame = decodeFrame(rawMessage); + if (frame.frame_type === "client_request") { + const state = debugClientState.get(ws); + if (state) { + state.protocolMode = "client_data_format"; + state.uuid = String(frame.uuid || ""); + } + log( + `[proto] 收到客户端控制帧 cmd=${frame.cmd} comment=${frame.comment} uuid=${frame.uuid}`, + ); + forwardDebugMessages(frame.debug_messages); + respondClientRequest(ws, frame); + flushPendingCdpMessages(); + return; + } + + if (frame.frame_type === "debug_message") { + const state = debugClientState.get(ws); + if (state) { + state.protocolMode = "raw_debug"; + } + forwardDebugMessages(frame.debug_messages); + flushPendingCdpMessages(); + return; + } + + warn( + `[!] 无法识别的小程序调试帧: bytes=${frame.byte_length} preview=${frame.preview_hex} raw=${JSON.stringify(frame.preview_bytes)}`, + ); + for (const error of frame.errors || []) { + warn(`[!] decode error: ${error}`); + } + }); + + ws.on("close", (code, reasonBuffer) => { + debugClients.delete(ws); + const reason = reasonBuffer ? reasonBuffer.toString() : ""; + log(`[-] 微信4小程序调试客户端已断开 close_code=${code} close_reason=${reason}`); + if (cdpClients.size > 0) { + log("[!] 小程序已断开,现有 DevTools 连接将保持打开并等待下次小程序重连"); + } + }); + + ws.on("error", (error) => { + warn(`[!] 微信4小程序调试客户端异常: ${error && error.stack ? error.stack : error}`); + }); +}); + +cdpServer.on("connection", (ws) => { + cdpClients.add(ws); + log("[+] DevTools 客户端已连接"); + if (debugClients.size === 0) { + log("[!] 当前还没有小程序调试连接,DevTools 会保持等待并缓存发出的消息"); + } + + ws.on("message", (message) => { + const text = Buffer.isBuffer(message) ? message.toString("utf8") : String(message); + if (!broadcastCdpMessageToDebugClients(text)) { + enqueueCdpMessage(text); + log(`[proto] 已缓存一条 DevTools 消息,当前缓存数=${pendingCdpMessages.length}`); + } + }); + + ws.on("close", (code, reasonBuffer) => { + cdpClients.delete(ws); + const reason = reasonBuffer ? reasonBuffer.toString() : ""; + log(`[-] DevTools 客户端已断开 close_code=${code} close_reason=${reason}`); + }); + + ws.on("error", (error) => { + warn(`[!] DevTools 客户端异常: ${error && error.stack ? error.stack : error}`); + }); +}); diff --git a/utils/commons.py b/utils/commons.py index 18e43e7..902c40e 100644 --- a/utils/commons.py +++ b/utils/commons.py @@ -1,8 +1,8 @@ -# commons.py -from utils.colors import Color -from utils.wechatutils import WechatUtils -import frida -import sys +# commons.py +from utils.colors import Color +from utils.wechatutils import WechatUtils +import frida +import sys import time import platform @@ -33,22 +33,46 @@ def inject_wechatEx(self, pid, code): print(Color.RED + f"[-] 注入微信失败PID {pid}: {e}", Color.END) return None - def inject_wechatDLL(self, path, code): - pid = self.device.spawn(path) - session = frida.attach(pid) - script = session.create_script(code) - script.on("message", self.onMessage) + def inject_wechatDLL(self, path, code): + pid = self.device.spawn(path) + session = frida.attach(pid) + script = session.create_script(code) + script.on("message", self.onMessage) script.load() - self.device.resume(pid) - time.sleep(10) - session.detach() - - def load_wechatEx_configs(self): - path = self.wechatutils_instance.get_configs_path() - if get_cpu_architecture() == "MacOS x64": - wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions_mac() - else: - wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() + self.device.resume(pid) + time.sleep(10) + session.detach() + + def load_wechatEx_configs(self, debug_port=9421, cdp_port=62000, wx4_options=None): + from utils.wechat4debug import WeChat4Debugger + + wechat4_debugger = WeChat4Debugger( + debug_port=debug_port, + cdp_port=cdp_port, + options=wx4_options or {}, + ) + runtime = wechat4_debugger.detect_runtime() + if runtime is not None: + if wechat4_debugger.is_supported_version(runtime.version): + wechat4_debugger.run_forever(runtime) + else: + print( + Color.YELLOW + + f"[!] 检测到微信4/WMPF 运行时版本 {runtime.version},但当前仓库未内置对应配置" + + Color.END + ) + print( + Color.YELLOW + + "[!] 请补充 configs/wx4 下的地址文件后再重试" + + Color.END + ) + return + + path = self.wechatutils_instance.get_configs_path() + if get_cpu_architecture() == "MacOS x64": + wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions_mac() + else: + wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() if wechat_instances: for pid, version in wechat_instances: @@ -66,28 +90,59 @@ def load_wechatEx_configs(self): self.wechatutils_instance.print_process_not_found_message() # 管理会话 - while self.active_sessions: - self.manage_sessions() - time.sleep(5) # 每5秒检查一次 - - def load_wechatEXE_configs(self): - wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() - if wechat_instances: - print(Color.RED + f"[-] 请退出所有微信实例后再执行该命令 " + Color.END) - return 0 - + while self.active_sessions: + self.manage_sessions() + time.sleep(5) # 每5秒检查一次 + + def load_wechatEXE_configs(self): + from utils.wechat4debug import WeChat4Debugger + + runtime = WeChat4Debugger().detect_runtime() + if runtime is not None: + print( + Color.YELLOW + + "[!] 微信4 暂未适配内置浏览器 F12(-c),目前只支持小程序远程调试链路(-x)" + + Color.END + ) + return 0 + + wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() + if wechat_instances: + print(Color.RED + f"[-] 请退出所有微信实例后再执行该命令 " + Color.END) + return 0 + wechatEXEpath = self.wechatutils_instance.find_installation_path("微信") path = self.wechatutils_instance.get_configs_path() wechatEXE_hookcode = open(path + "..\\scripts\\WechatWin.dll\\hook.js", "r", encoding="utf-8").read() self.inject_wechatDLL(wechatEXEpath, wechatEXE_hookcode) - def load_wechatEXE_and_wechatEx(self): - wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() - if wechat_instances: - print(Color.RED + f"[-] 请关闭所有微信实例后再执行该命令 " + Color.END) - return 0 - self.load_wechatEXE_configs() - self.load_wechatEx_configs() + def load_wechatEXE_and_wechatEx(self, debug_port=9421, cdp_port=62000, wx4_options=None): + from utils.wechat4debug import WeChat4Debugger + + runtime = WeChat4Debugger().detect_runtime() + if runtime is not None: + print( + Color.YELLOW + + "[!] 微信4 已切换为远程调试模式,-all 当前等价于 -x;内置浏览器 F12 仍未适配" + + Color.END + ) + self.load_wechatEx_configs( + debug_port=debug_port, + cdp_port=cdp_port, + wx4_options=wx4_options, + ) + return + + wechat_instances = self.wechatutils_instance.get_wechat_pids_and_versions() + if wechat_instances: + print(Color.RED + f"[-] 请关闭所有微信实例后再执行该命令 " + Color.END) + return 0 + self.load_wechatEXE_configs() + self.load_wechatEx_configs( + debug_port=debug_port, + cdp_port=cdp_port, + wx4_options=wx4_options, + ) def manage_sessions(self): for session in self.active_sessions[:]: # 使用切片创建副本以便在迭代时修改 diff --git a/utils/wechat4debug.py b/utils/wechat4debug.py new file mode 100644 index 0000000..b4a1b61 --- /dev/null +++ b/utils/wechat4debug.py @@ -0,0 +1,759 @@ +from __future__ import annotations + +# WeChat 4 compatibility in this file is informed by the public WMPFDebugger +# implementation and its adaptation notes, then reworked into a Python-driven +# launcher/injector for this repository. + +import asyncio +import base64 +import json +import os +import re +import shutil +import subprocess +from collections import Counter +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import frida + +from utils.colors import Color + + +@dataclass(slots=True) +class WeChat4Runtime: + pid: int + version: int + path: str + + +class WeChat4Debugger: + def __init__(self, debug_port: int = 9421, cdp_port: int = 62000, options: dict[str, Any] | None = None): + self.debug_port = debug_port + self.cdp_port = cdp_port + self.options = options or {} + self.project_root = Path(__file__).resolve().parent.parent + self.config_dir = self.project_root / "configs" / "wx4" + self.hook_path = self.project_root / "scripts" / "wechat4_hook.js" + self.codec_bridge_path = self.project_root / "scripts" / "wechat4_codec_bridge.js" + self.ws_bridge_path = self.project_root / "scripts" / "wechat4_ws_bridge.js" + self._supported_versions = self._load_supported_versions() + self._device = None + self._session = None + self._script = None + self._codec_process = None + self._codec_reader_task = None + self._codec_stderr_task = None + self._codec_request_id = 0 + self._codec_pending: dict[int, asyncio.Future] = {} + self._debug_clients: set[Any] = set() + self._cdp_clients: set[Any] = set() + self._debug_connected_event = asyncio.Event() + self._websockets = None + self._connection_closed_exc: tuple[type[BaseException], ...] = tuple() + self._last_debug_category: str | None = None + self._last_scene_number: int | None = None + self._scene_was_patched = False + self._debug_protocol_mode = "raw_debug" + self._debug_uuid: str = "" + self._ws_bridge_process = None + self._ws_bridge_stdout_task = None + self._ws_bridge_stderr_task = None + + def _load_supported_versions(self) -> set[int]: + if not self.config_dir.exists(): + return set() + + versions = set() + for config_file in self.config_dir.glob("addresses.*.json"): + match = re.search(r"addresses\.(\d+)\.json$", config_file.name) + if match: + versions.add(int(match.group(1))) + return versions + + def is_supported_version(self, version: int) -> bool: + return version in self._supported_versions + + def detect_runtime(self) -> WeChat4Runtime | None: + try: + device = frida.get_local_device() + processes = device.enumerate_processes(scope="metadata") + except Exception as error: + print(Color.RED + f"[-] 获取微信4运行时失败: {error}" + Color.END) + return None + + wmpf_processes = [ + process + for process in processes + if process.name == "WeChatAppEx.exe" + and "RadiumWMPF" in str(process.parameters.get("path", "")) + ] + if not wmpf_processes: + return None + + parent_counter = Counter( + int(process.parameters["ppid"]) + for process in wmpf_processes + if process.parameters.get("ppid") + ) + if not parent_counter: + return None + + runtime_pid = parent_counter.most_common(1)[0][0] + runtime_process = next( + (process for process in processes if process.pid == runtime_pid), None + ) + if runtime_process is None: + runtime_process = next( + (process for process in wmpf_processes if process.pid == runtime_pid), + None, + ) + if runtime_process is None: + return None + + runtime_path = str(runtime_process.parameters.get("path", "")) + runtime_version = self._extract_runtime_version(runtime_path) + if runtime_version is None: + child_process = next( + ( + process + for process in wmpf_processes + if int(process.parameters.get("ppid", 0)) == runtime_pid + ), + None, + ) + if child_process is not None: + runtime_path = str(child_process.parameters.get("path", "")) + runtime_version = self._extract_runtime_version(runtime_path) + if runtime_version is None: + return None + + return WeChat4Runtime( + pid=runtime_pid, + version=runtime_version, + path=runtime_path, + ) + + def _extract_runtime_version(self, runtime_path: str) -> int | None: + match = re.search(r"RadiumWMPF[\\/](\d+)[\\/]extracted", runtime_path, re.I) + if match: + return int(match.group(1)) + + fallback = re.findall(r"\d+", runtime_path) + return int(fallback[-1]) if fallback else None + + def run_forever(self, runtime: WeChat4Runtime) -> None: + try: + asyncio.run(self._run(runtime)) + except KeyboardInterrupt: + print(Color.YELLOW + "\n[!] 微信4调试桥已停止" + Color.END) + except Exception as error: + print(Color.RED + f"[-] 微信4调试桥启动失败: {error}" + Color.END) + + async def _run(self, runtime: WeChat4Runtime) -> None: + try: + await self._start_ws_bridge() + self._attach_frida(runtime) + + await asyncio.Future() + finally: + await self._shutdown() + + async def _start_codec_bridge(self) -> None: + node_path = self._find_node_executable() + if node_path is None: + raise RuntimeError( + "未找到可用的 Node.js。微信4 调试模式依赖 Node.js 运行编解码桥。" + ) + + if not self.codec_bridge_path.exists(): + raise RuntimeError(f"未找到微信4 编解码脚本: {self.codec_bridge_path}") + + self._codec_process = await asyncio.create_subprocess_exec( + node_path, + str(self.codec_bridge_path), + cwd=str(self.project_root), + stdin=asyncio.subprocess.PIPE, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + self._codec_reader_task = asyncio.create_task(self._read_codec_stdout()) + self._codec_stderr_task = asyncio.create_task(self._read_codec_stderr()) + + await self._codec_request({"type": "ping"}) + + async def _start_ws_bridge(self) -> None: + node_path = self._find_node_executable() + if node_path is None: + raise RuntimeError( + "未找到可用的 Node.js。微信4 调试模式依赖 Node.js 运行 ws 桥接服务。" + ) + + if not self.ws_bridge_path.exists(): + raise RuntimeError(f"未找到微信4 ws 桥接脚本: {self.ws_bridge_path}") + + self._ws_bridge_process = await asyncio.create_subprocess_exec( + node_path, + str(self.ws_bridge_path), + str(self.debug_port), + str(self.cdp_port), + cwd=str(self.project_root), + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.PIPE, + ) + self._ws_bridge_stdout_task = asyncio.create_task( + self._read_bridge_stream(self._ws_bridge_process.stdout, Color.GREEN) + ) + self._ws_bridge_stderr_task = asyncio.create_task( + self._read_bridge_stream(self._ws_bridge_process.stderr, Color.YELLOW) + ) + + await asyncio.sleep(0.5) + if self._ws_bridge_process.returncode is not None: + raise RuntimeError( + f"微信4 ws 桥接服务启动失败,退出码: {self._ws_bridge_process.returncode}" + ) + + def _find_node_executable(self) -> str | None: + candidates: list[Path] = [] + node_in_path = shutil.which("node") + if node_in_path: + candidates.append(Path(node_in_path)) + + local_appdata = os.environ.get("LOCALAPPDATA") + if local_appdata: + mise_root = Path(local_appdata) / "mise" / "installs" / "node" + if mise_root.exists(): + candidates.extend( + sorted( + mise_root.glob("*/node.exe"), + key=lambda item: item.stat().st_mtime, + reverse=True, + ) + ) + + candidates.extend( + [ + Path(r"C:\Program Files\nodejs\node.exe"), + Path(r"C:\Program Files (x86)\nodejs\node.exe"), + ] + ) + + tested: set[str] = set() + for candidate in candidates: + candidate_str = str(candidate) + if candidate_str in tested or not candidate.exists(): + continue + tested.add(candidate_str) + + try: + subprocess.run( + [candidate_str, "--version"], + check=True, + capture_output=True, + text=True, + ) + return candidate_str + except Exception: + continue + return None + + async def _codec_request(self, payload: dict[str, Any]) -> dict[str, Any]: + if self._codec_process is None or self._codec_process.stdin is None: + raise RuntimeError("微信4 编解码桥未启动") + + if self._codec_process.returncode is not None: + raise RuntimeError("微信4 编解码桥已退出,请检查 Node.js 和 protobufjs 依赖") + + self._codec_request_id += 1 + request_id = self._codec_request_id + loop = asyncio.get_running_loop() + future = loop.create_future() + self._codec_pending[request_id] = future + + message = json.dumps( + {"id": request_id, **payload}, + ensure_ascii=False, + ) + "\n" + self._codec_process.stdin.write(message.encode("utf-8")) + await self._codec_process.stdin.drain() + + response = await future + if not response.get("ok", False): + raise RuntimeError(response.get("error", "微信4 编解码桥返回未知错误")) + return response + + async def _read_codec_stdout(self) -> None: + if self._codec_process is None or self._codec_process.stdout is None: + return + + while True: + line = await self._codec_process.stdout.readline() + if not line: + break + + try: + response = json.loads(line.decode("utf-8")) + except json.JSONDecodeError: + continue + + request_id = response.get("id") + future = self._codec_pending.pop(request_id, None) + if future is not None and not future.done(): + future.set_result(response) + + error = RuntimeError("微信4 编解码桥已退出") + for future in self._codec_pending.values(): + if not future.done(): + future.set_exception(error) + self._codec_pending.clear() + + async def _read_codec_stderr(self) -> None: + if self._codec_process is None or self._codec_process.stderr is None: + return + + while True: + line = await self._codec_process.stderr.readline() + if not line: + break + message = line.decode("utf-8", errors="replace").rstrip() + if message: + print(Color.YELLOW + f"[codec] {message}" + Color.END) + + async def _read_bridge_stream(self, stream, color: str) -> None: + if stream is None: + return + + while True: + line = await stream.readline() + if not line: + break + message = line.decode("utf-8", errors="replace").rstrip() + if message: + print(color + message + Color.END) + + def _attach_frida(self, runtime: WeChat4Runtime) -> None: + if not self.hook_path.exists(): + raise RuntimeError(f"未找到微信4 Hook 脚本: {self.hook_path}") + + config_path = self.config_dir / f"addresses.{runtime.version}.json" + if not config_path.exists(): + raise RuntimeError(f"未找到微信4地址配置: {config_path}") + + hook_code = self.hook_path.read_text(encoding="utf-8") + config_text = config_path.read_text(encoding="utf-8") + runtime_options_text = json.dumps( + { + "patchScene": bool(self.options.get("patch_scene", True)), + "patchCDPFilter": bool(self.options.get("patch_cdp_filter", True)), + "forceDebugFlag": bool(self.options.get("force_debug_flag", True)), + "sceneTarget": int(self.options.get("scene_target", 1101)), + } + ) + script_text = ( + f"var runtimeOptions = {runtime_options_text};\n" + + hook_code.replace("@@CONFIG@@", json.dumps(json.loads(config_text))) + ) + self._last_scene_number = None + self._scene_was_patched = False + self._debug_protocol_mode = "raw_debug" + self._debug_uuid = "" + + self._device = frida.get_local_device() + self._session = self._device.attach(runtime.pid) + self._script = self._session.create_script(script_text) + self._script.on("message", self._on_frida_message) + self._script.load() + + print( + Color.GREEN + + f"[+] 已附加微信4运行时 PID: {runtime.pid},WMPF版本: {runtime.version}" + + Color.END + ) + print( + Color.CYAN + + "[+] 微信4 patch 选项: " + + f"patch_scene={bool(self.options.get('patch_scene', True))} " + + f"patch_cdp_filter={bool(self.options.get('patch_cdp_filter', True))} " + + f"force_debug_flag={bool(self.options.get('force_debug_flag', True))} " + + f"scene_target={int(self.options.get('scene_target', 1101))}" + + Color.END + ) + + def _on_frida_message(self, message: dict[str, Any], data: Any) -> None: + if message["type"] == "send": + payload = str(message["payload"]) + scene_match = re.search(r"\[hook\] scene: (\d+)", payload) + if scene_match: + self._last_scene_number = int(scene_match.group(1)) + if "hook scene condition -> 1101" in payload: + self._scene_was_patched = True + print(Color.BLUE + f"[frida] {payload}" + Color.END) + elif message["type"] == "error": + print(Color.RED + f"[frida] {message['stack']}" + Color.END) + + async def _handle_decoded_debug_frame( + self, websocket, response: dict[str, Any] + ) -> None: + frame_type = response.get("frame_type") + if frame_type == "debug_message": + self._debug_protocol_mode = "raw_debug" + await self._forward_debug_messages(response.get("debug_messages", [])) + return + + if frame_type == "client_request": + self._debug_protocol_mode = "client_data_format" + self._debug_uuid = str(response.get("uuid") or "") + cmd = response.get("cmd") + comment = response.get("comment") + print( + Color.CYAN + + f"[proto] 收到客户端控制帧 cmd={cmd} comment={comment} uuid={self._debug_uuid}" + + Color.END + ) + await self._forward_debug_messages(response.get("debug_messages", [])) + await self._respond_client_request(websocket, response) + return + + if frame_type == "unknown": + print( + Color.YELLOW + + "[!] 无法识别的小程序调试帧:" + + f" bytes={response.get('byte_length')} preview={response.get('preview_hex')}" + + Color.END + ) + errors = response.get("errors") or [] + for error in errors: + print(Color.YELLOW + f"[!] decode error: {error}" + Color.END) + return + + print( + Color.YELLOW + + f"[!] 收到未知 frame_type={frame_type},原始响应={response}" + + Color.END + ) + + async def _forward_debug_messages(self, debug_messages: list[dict[str, Any]]) -> None: + for debug_message in debug_messages: + category = debug_message.get("category") + if category: + self._last_debug_category = category + + if category != "chromeDevtoolsResult": + continue + + payload = debug_message.get("payload") + if payload: + await self._broadcast(self._cdp_clients, payload) + + async def _respond_client_request( + self, websocket, response: dict[str, Any] + ) -> None: + cmd = response.get("cmd") + uuid = str(response.get("uuid") or "") + data = response.get("data") or {} + debug_messages = response.get("debug_messages") or [] + encoded = None + + if cmd == 1002: # Login + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1002, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + "room_info": { + "join_room": 1, + "original_md5": "", + "room_status": 1, + "wx_conn_status": 1, + "dev_conn_status": 1, + "room_id": "", + }, + }, + } + ) + elif cmd == 1003: # JoinRoom + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1003, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + }, + } + ) + elif cmd == 1001: # Heartbeat + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1001, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + }, + } + ) + elif cmd == 1005: # SyncMessage + send_ack = int(data.get("max_seq") or data.get("min_seq") or 0) + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1005, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + "debug_message": [], + "send_ack": send_ack, + }, + } + ) + elif cmd == 1006: # SendDebugMessageParallelly + seq_values = [ + int(item.get("seq", 0)) + for item in debug_messages + if isinstance(item.get("seq"), int) + ] + min_ack = min(seq_values) if seq_values else 0 + max_ack = max(seq_values) if seq_values else 0 + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1006, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + "min_ack": min_ack, + "max_ack": max_ack, + }, + } + ) + elif cmd == 1004: # QuitRoom + encoded = await self._codec_request( + { + "type": "encode_client_response", + "response_type": 1004, + "uuid": uuid, + "payload": { + "base_response": {"errcode": 0, "errmsg": ""}, + }, + } + ) + + if encoded is None: + print(Color.YELLOW + f"[!] 暂未处理的客户端控制帧 cmd={cmd}" + Color.END) + return + + await websocket.send(base64.b64decode(encoded["data"])) + + async def _handle_debug_client(self, websocket) -> None: + self._debug_clients.add(websocket) + self._debug_connected_event.set() + self._last_debug_category = None + print(Color.GREEN + "[+] 微信4小程序调试客户端已连接" + Color.END) + request = getattr(websocket, "request", None) + headers = getattr(request, "headers", None) + if headers: + print( + Color.CYAN + + "[proto] 小程序连接请求头: " + + f"extensions={headers.get('Sec-WebSocket-Extensions')} " + + f"protocol={headers.get('Sec-WebSocket-Protocol')} " + + f"user-agent={headers.get('User-Agent')}" + + Color.END + ) + try: + try: + async for message in websocket: + if not isinstance(message, (bytes, bytearray)): + print( + Color.YELLOW + + f"[!] 收到非二进制调试帧 type={type(message).__name__},已忽略" + + Color.END + ) + continue + + response = await self._codec_request( + { + "type": "decode", + "data": base64.b64encode(bytes(message)).decode("ascii"), + } + ) + await self._handle_decoded_debug_frame(websocket, response) + except self._connection_closed_exc: + pass + finally: + self._debug_clients.discard(websocket) + if not self._debug_clients: + self._debug_connected_event.clear() + close_code = getattr(websocket, "close_code", None) + close_reason = getattr(websocket, "close_reason", None) + print( + Color.YELLOW + + f"[-] 微信4小程序调试客户端已断开 close_code={close_code} close_reason={close_reason}" + + Color.END + ) + if self._last_debug_category is None: + print( + Color.YELLOW + + "[!] 断开前未收到可识别的调试消息。常见原因是先打开了浏览器 DevTools,或当前小程序场景未命中远程调试 patch。" + + Color.END + ) + elif self._last_debug_category != "chromeDevtoolsResult": + print( + Color.YELLOW + + f"[!] 断开前最后一条调试消息分类为 {self._last_debug_category},还没进入 Chrome DevTools 数据流。" + + Color.END + ) + if self._last_scene_number is not None: + print( + Color.YELLOW + + f"[!] 最近一次命中的小程序 scene = {self._last_scene_number},scene patch 命中状态 = {self._scene_was_patched}" + + Color.END + ) + else: + print( + Color.YELLOW + + "[!] 运行期间没有看到任何 `[hook] scene:` 日志。当前更像是已经命中 OnLoadStart,但 scene 指针链解析失败或当前 offsets 不匹配。" + + Color.END + ) + await self._close_clients( + self._cdp_clients, + code=1012, + reason="miniapp disconnected; relaunch the miniapp first", + ) + + async def _handle_cdp_client(self, websocket) -> None: + if not self._debug_clients: + print( + Color.YELLOW + + "[!] DevTools 连接被拒绝:请先启动小程序,等看到“微信4小程序调试客户端已连接”后再打开 DevTools。" + + Color.END + ) + await websocket.close( + code=1013, + reason="launch miniapp first, then open devtools", + ) + return + + self._cdp_clients.add(websocket) + print(Color.GREEN + "[+] DevTools 客户端已连接" + Color.END) + try: + try: + async for message in websocket: + if isinstance(message, bytes): + message = message.decode("utf-8", errors="replace") + + if not self._debug_clients: + print( + Color.YELLOW + + "[!] 当前没有可用的小程序调试连接,已关闭 DevTools 客户端,请重新按顺序启动。" + + Color.END + ) + await websocket.close( + code=1012, + reason="miniapp disconnected; relaunch first", + ) + break + + response = await self._codec_request( + self._build_cdp_encode_request(message) + ) + binary_message = base64.b64decode(response["data"]) + await self._broadcast(self._debug_clients, binary_message) + except self._connection_closed_exc: + pass + finally: + self._cdp_clients.discard(websocket) + close_code = getattr(websocket, "close_code", None) + close_reason = getattr(websocket, "close_reason", None) + print( + Color.YELLOW + + f"[-] DevTools 客户端已断开 close_code={close_code} close_reason={close_reason}" + + Color.END + ) + + def _build_cdp_encode_request(self, payload: str) -> dict[str, Any]: + if self._debug_protocol_mode == "client_data_format": + return { + "type": "encode_client_notify", + "uuid": self._debug_uuid, + "payload": payload, + } + return { + "type": "encode", + "payload": payload, + } + + async def _broadcast(self, clients: set[Any], message: str | bytes) -> None: + disconnected = [] + for client in list(clients): + try: + await client.send(message) + except Exception: + disconnected.append(client) + + for client in disconnected: + clients.discard(client) + + async def _close_clients(self, clients: set[Any], code: int, reason: str) -> None: + for client in list(clients): + try: + await client.close(code=code, reason=reason) + except Exception: + pass + finally: + clients.discard(client) + + async def _shutdown(self) -> None: + if self._script is not None: + try: + self._script.unload() + except Exception: + pass + self._script = None + + if self._session is not None: + try: + self._session.detach() + except Exception: + pass + self._session = None + + if self._ws_bridge_process is not None: + if self._ws_bridge_process.returncode is None: + self._ws_bridge_process.terminate() + try: + await asyncio.wait_for(self._ws_bridge_process.wait(), timeout=3) + except asyncio.TimeoutError: + self._ws_bridge_process.kill() + await self._ws_bridge_process.wait() + self._ws_bridge_process = None + + if self._codec_process is not None: + if self._codec_process.stdin is not None: + try: + self._codec_process.stdin.close() + except Exception: + pass + + if self._codec_process.returncode is None: + self._codec_process.terminate() + try: + await asyncio.wait_for(self._codec_process.wait(), timeout=3) + except asyncio.TimeoutError: + self._codec_process.kill() + await self._codec_process.wait() + self._codec_process = None + + for task in ( + self._ws_bridge_stdout_task, + self._ws_bridge_stderr_task, + self._codec_reader_task, + self._codec_stderr_task, + ): + if task is not None: + task.cancel() diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..0198b3a --- /dev/null +++ b/uv.lock @@ -0,0 +1,85 @@ +version = 1 +revision = 3 +requires-python = ">=3.13" + +[[package]] +name = "frida" +version = "16.6.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/51/04/811766670fe410038fb93fe0082052fa1865f991df86f4a318429bdbd5ef/frida-16.6.6.tar.gz", hash = "sha256:384572cd21185e6b152628216e83fcddbb869572ad55609582580494ce8b6c2a", size = 920375, upload-time = "2025-01-27T20:26:14.26Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/d0/2d564dac6eac638f91c943b3e23522b21491eba3a3dd0bacc8572b2e7e1f/frida-16.6.6-cp37-abi3-macosx_10_13_x86_64.whl", hash = "sha256:b00a2b5f877cbb4955e72413c1f620dc75498a93d4d9a01f663053f2cfb94992", size = 16717689, upload-time = "2025-01-27T20:25:27.273Z" }, + { url = "https://files.pythonhosted.org/packages/c3/4a/2ba493cf4baf8144e3963fae5d6ec2359171063fdf5bb9811e9dcf627e56/frida-16.6.6-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:dcf59869117f4f6eaa6514555fa0a6499b5efa4e095a5785979b057841037f04", size = 30927703, upload-time = "2025-01-27T20:25:31.499Z" }, + { url = "https://files.pythonhosted.org/packages/2e/ab/e3a975bb040774e43fdefb34388071c0585b52a2786cd1b15e34b47d277e/frida-16.6.6-cp37-abi3-manylinux1_i686.whl", hash = "sha256:9dc05717c8079cad31268a9714cc6966931e7400487cfa0c19e6c077dea129ac", size = 13726613, upload-time = "2025-01-27T20:25:35.011Z" }, + { url = "https://files.pythonhosted.org/packages/cd/89/bacd953085f9f80213209c473bdbc9f02b0ff0cfeada8c0b3080dc6c92c2/frida-16.6.6-cp37-abi3-manylinux1_x86_64.whl", hash = "sha256:288d99fb774bd04b229977bf112878674e851dbb6e14b528aeb04ec085b10a4f", size = 29809751, upload-time = "2025-01-27T20:25:39.467Z" }, + { url = "https://files.pythonhosted.org/packages/4d/bb/d806f981055d8843cb51da5d5f5ee3c7210605ff99389f6b45ab7d46a756/frida-16.6.6-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:d74bd8de1aebd0acae49c89fad6ace2dddf5852df236b805dc83d5c524745e59", size = 15418293, upload-time = "2025-01-27T20:25:43.39Z" }, + { url = "https://files.pythonhosted.org/packages/b4/21/2ffb1aa1247cfd31717718ee75944146734c49ae6bc2c377b946d0c67ab7/frida-16.6.6-cp37-abi3-manylinux2014_armv7l.whl", hash = "sha256:853e1e786b24b726ea0e91e6855ca879271bf3dd4265085c019c19d716f489fd", size = 13189557, upload-time = "2025-01-27T20:25:47.169Z" }, + { url = "https://files.pythonhosted.org/packages/12/c1/0dd58b9d70b7b9db66faa1b8af142ba2d116ae3c84faa7a4386c742df90f/frida-16.6.6-cp37-abi3-manylinux_2_17_aarch64.whl", hash = "sha256:ab9ca0e41e89cc881dbaa33c724066c9839c1b92a06b9f92fa9ab00dc31d62e0", size = 15418294, upload-time = "2025-01-27T20:25:51.082Z" }, + { url = "https://files.pythonhosted.org/packages/2f/78/4e40d9f93ce28284e80d9c165d08146013f915189e7478490e7aaa6471f8/frida-16.6.6-cp37-abi3-manylinux_2_17_armv7l.whl", hash = "sha256:47aaacb1246a0f8587a1f4083761189aea39c51ce545cf998076814172d31770", size = 13189556, upload-time = "2025-01-27T20:25:54.167Z" }, + { url = "https://files.pythonhosted.org/packages/48/3e/e1f3eef4f8b369d850003d289b8bf59a10ae2d17e5b3bb056b00f71bf3b2/frida-16.6.6-cp37-abi3-manylinux_2_5_i686.whl", hash = "sha256:9ba5c342fc7a46599a4835e2fb3693342ec732963a0518b2d884d951bb5ea5f4", size = 13726615, upload-time = "2025-01-27T20:25:57.107Z" }, + { url = "https://files.pythonhosted.org/packages/08/9e/b867f83f3d8d144b1ec1941b4576bcbb54976f9d4a6540711dc3a5020c85/frida-16.6.6-cp37-abi3-manylinux_2_5_x86_64.whl", hash = "sha256:f27b230dd243ab3708f4051bcd9567cfe02893a706c5c3fe1573ccc2ef5a2969", size = 29809752, upload-time = "2025-01-27T20:26:01.391Z" }, + { url = "https://files.pythonhosted.org/packages/c8/6c/180911f821347f73f6695f2959bc55db79309ea7bf46d57585a2a52ab800/frida-16.6.6-cp37-abi3-win32.whl", hash = "sha256:44b4044625afa60f0799fedecfe0a25dab610556a469151dc02569555d0436a9", size = 18827296, upload-time = "2025-01-27T20:26:05.139Z" }, + { url = "https://files.pythonhosted.org/packages/12/ce/da547a876fa7c4cb2e40bbf29b187742fd16cb26eae4973f27c240e68d21/frida-16.6.6-cp37-abi3-win_amd64.whl", hash = "sha256:12d0117ea035bfcb5e4d685e88af02ce815169945702192ea9c21c0ebba42706", size = 33568227, upload-time = "2025-01-27T20:26:10.294Z" }, +] + +[[package]] +name = "psutil" +version = "5.9.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/d0/c9ae661a302931735237791f04cb7086ac244377f78692ba3b3eae3a9619/psutil-5.9.7.tar.gz", hash = "sha256:3f02134e82cfb5d089fddf20bb2e03fd5cd52395321d1c8458a9e58500ff417c", size = 498429, upload-time = "2023-12-17T11:25:21.22Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/63/86a4ccc640b4ee1193800f57bbd20b766853c0cdbdbb248a27cdfafe6cbf/psutil-5.9.7-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ea36cc62e69a13ec52b2f625c27527f6e4479bca2b340b7a452af55b34fcbe2e", size = 245972, upload-time = "2023-12-17T11:25:48.202Z" }, + { url = "https://files.pythonhosted.org/packages/58/80/cc6666b3968646f2d94de66bbc63d701d501f4aa04de43dd7d1f5dc477dd/psutil-5.9.7-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1132704b876e58d277168cd729d64750633d5ff0183acf5b3c986b8466cd0284", size = 282514, upload-time = "2023-12-17T11:25:51.371Z" }, + { url = "https://files.pythonhosted.org/packages/be/fa/f1f626620e3b47e6237dcc64cb8cc1472f139e99422e5b9fa5bbcf457f48/psutil-5.9.7-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe8b7f07948f1304497ce4f4684881250cd859b16d06a1dc4d7941eeb6233bfe", size = 285469, upload-time = "2023-12-17T11:25:54.25Z" }, + { url = "https://files.pythonhosted.org/packages/7c/b8/dc6ebfc030b47cccc5f5229eeb15e64142b4782796c3ce169ccd60b4d511/psutil-5.9.7-cp37-abi3-win32.whl", hash = "sha256:c727ca5a9b2dd5193b8644b9f0c883d54f1248310023b5ad3e92036c5e2ada68", size = 248406, upload-time = "2023-12-17T12:38:50.326Z" }, + { url = "https://files.pythonhosted.org/packages/50/28/92b74d95dd991c837813ffac0c79a581a3d129eb0fa7c1dd616d9901e0f3/psutil-5.9.7-cp37-abi3-win_amd64.whl", hash = "sha256:f37f87e4d73b79e6c5e749440c3113b81d1ee7d26f21c19c47371ddea834f414", size = 252245, upload-time = "2023-12-17T12:39:00.686Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8a/000d0e80156f0b96c55bda6c60f5ed6543d7b5e893ccab83117e50de1400/psutil-5.9.7-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:032f4f2c909818c86cea4fe2cc407f1c0f0cde8e6c6d702b28b8ce0c0d143340", size = 246739, upload-time = "2023-12-17T11:25:57.305Z" }, +] + +[[package]] +name = "pyfiglet" +version = "1.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/f2/2649b2acace54f861eccd4ab163bfd914236fc93ddb1df02dad2a2552b14/pyfiglet-1.0.2.tar.gz", hash = "sha256:758788018ab8faaddc0984e1ea05ff330d3c64be663c513cc1f105f6a3066dab", size = 832345, upload-time = "2023-09-13T20:56:21.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/03/bef6fff907e212d67a0003f8ea4819307bba91b2856074a0763dd483ccc4/pyfiglet-1.0.2-py3-none-any.whl", hash = "sha256:889b351d79c99e50a3f619c8f8e6ffdb27fd8c939fc43ecbd7559bd57d5f93ea", size = 1085824, upload-time = "2023-09-13T20:56:18.707Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +] + +[[package]] +name = "wechatopendevtools-python" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "frida" }, + { name = "psutil" }, + { name = "pyfiglet" }, + { name = "websockets" }, +] + +[package.metadata] +requires-dist = [ + { name = "frida", specifier = "==16.6.6" }, + { name = "psutil", specifier = "==5.9.7" }, + { name = "pyfiglet", specifier = "==1.0.2" }, + { name = "websockets", specifier = "==15.0.1" }, +]