Files
rustdesk-server/web_client/dist/bundle.js
T
mike d07e98e607 feat: M6 web client — view + control + audio in the dashboard
Adds a TypeScript SPA embedded in hbbs that lets a logged-in admin click
"Connect (web client)" on a Devices row and remote-control the peer from
the browser, no desktop client install required. View, mouse/keyboard
control, and host-audio playback all work end-to-end.

Architecture
------------
Pure browser app, no server-side WS proxy:

  Browser  ──ws://hbbs:21118── rendezvous (PunchHole + RequestRelay)
       │
       └──ws://hbbr:21119──── relay (paired by uuid)
                                  │
                                  └── peer (RustDesk desktop, any platform)

Same wire path the desktop client takes via `Client::request_relay` and
`Client::create_relay`. Browser-relay-only — no NAT punching, so we send
nat_type=SYMMETRIC in PunchHoleRequest to make the peer skip the direct
attempt and go straight to relay (initiate=true with a host-generated uuid
that we then use for our own relay leg).

The 5 wire steps:
  1. PunchHoleRequest → harvests signed peer Ed25519 sign-pk + relay host
     + the peer's session uuid from RelayResponse
  2. Verify the signed pk against /admin/connect's `id_ed25519.pub`
  3. Open WS to hbbr:21119, send RequestRelay with that uuid
  4. Read peer's Message{signed_id}, verify with peer_sign_pk, extract
     Curve25519 box pk; box-seal a fresh secretbox key under it; send
     Message{public_key} unencrypted
  5. Secretbox-encrypted stream from here. Hash → LoginRequest →
     LoginResponse with PeerInfo. Mode = Legacy (Translate silently drops
     ControlKey/Unicode payloads on the host side).

New Rust surface
----------------
- `admin_ui/connect.html` — SPA shell with `{{CUSTOM_CONFIG}}` placeholder
- `src/api/admin/pages/connect.rs` — gates on AuthedUser, injects per-request
  config (rendezvous host, relay host, server pubkey, peer_id, admin name)
  into the `<script id="custom-config">` tag, serves bundle.{js,css} via
  include_bytes!
- 3 routes added: GET /admin/connect/:peer_id and the two assets
- Devices dropdown gains a sky-blue "Connect (web client)" link that opens
  in a new tab

New TypeScript SPA (`web_client/`)
----------------------------------
Stack: pure DOM/TS, no React/Vue. Bundled by esbuild → `dist/bundle.{js,css}`
which is committed (cargo build needs no Node toolchain).

  src/main.ts                 boot + password retry loop + receive dispatch
  src/crypto.ts               tweetnacl wrapper (sign_open, box, secretbox)
                              + @noble/hashes/sha2 (works on plain http;
                              SubtleCrypto requires a secure context)
  src/proto/generated.{js,d.ts}  pbjs static-module from
                              libs/hbb_common/protos/{rendezvous,message}.proto
  src/transport/rendezvous.ts WS to hbbs; PunchHole + RequestRelay
  src/transport/relay.ts      WS to hbbr; duplex frame transport
  src/transport/session.ts    secure-handshake state machine + Hash/Login
                              + 8-byte LE secretbox sequence counter
                              (PRE-increment, send/recv independent —
                              matches libs/hbb_common/src/tcp.rs:317-320)
                              + preloginExtras stash for AudioFormat that
                              arrives before LoginResponse
  src/decode/video.ts         WebCodecs VideoDecoder (vp09.00.10.08 today;
                              h264/h265/av1/vp8 codec strings ready for M6f)
  src/decode/audio.ts         WebCodecs AudioDecoder (opus) → AudioContext;
                              detects f32 vs f32-planar AudioData layout
                              and deinterleaves when needed; gap-less
                              scheduling via a sliding playhead
  src/ui/canvas.ts            <canvas> with object-fit: contain letterbox;
                              auto-resizes on resolution change; FPS counter
  src/input/mouse.ts          MouseEvent → MouseEvent proto. Mask layout:
                              (button << 3) | type (0=move,1=down,2=up,
                              3=wheel). Letterbox-aware viewport→peer
                              coord mapping. Right-click suppresses the
                              browser context menu; left-click does NOT
                              preventDefault (would block focus)
  src/input/keyboard.ts       Window-level keydown/keyup → KeyEvent proto
                              in Legacy mode. Special keys → ControlKey
                              enum; printable → unicode codepoint (down
                              only, host's process_unicode does a single
                              key_click). Browser shortcuts allowlisted
                              (Cmd-T/N/W/R, Tab) so the user keeps tab
                              control. Ctrl+Alt+Del HUD button (host-side
                              `send_sas` is `#[cfg(windows)]`; no-op on
                              Mac/Linux hosts but present for parity)

Bundle size: 529 KB raw / ~74 KB gzipped. Tree-shaken protobufjs +
tweetnacl + @noble/hashes only.

Deployment notes
----------------
- WebCodecs and SubtleCrypto are gated to "secure context" origins —
  HTTPS, or http://localhost. Plain http://lan-ip won't work. Open via
  http://localhost during dev, or terminate TLS in front of hbbs (Caddy
  / nginx / Traefik) for production access.
- `--relay-servers <host>` on hbbs must point at a host where TCP/WS
  21119 is reachable from end-user browsers.

Wire-format gotchas this commit nails (each one was a session of bisecting)
--------------------------------------------------------------------------
- Hash.salt / Hash.challenge are proto `string` fields used as raw UTF-8
  bytes in the SHA-256 chain. NOT base64-decoded. `pwd_hash =
  SHA256(pwd_text || salt_utf8)`, `resp = SHA256(pwd_hash || challenge_utf8)`.
- Translate keyboard mode silently drops Unicode + ControlKey payloads on
  the host (input_service.rs:2022 has `// Do not handle unicode for now.`).
  Only Seq + Chr work in Translate. Use Legacy (mode=0) for everything.
- Browser is forced to relay path by sending nat_type=SYMMETRIC. The peer
  generates its OWN uuid in handle_punch_hole's symmetric branch; use that
  uuid (carried back in RelayResponse) for the relay leg, not a fresh one.
- Misc{audio_format} fires from the host's audio_service first-snapshot
  BETWEEN add_connection and login_response, so it lands on the wire
  before our session.recv() loop is set up. Session.open() captures
  pre-login messages into preloginExtras for the caller to replay.
- protobufjs static-module sets unpopulated oneof fields to JS `null`,
  not `undefined`. A `if (msg.cursor_id !== undefined)` cursor branch
  swallowed every other message type including Misc; switched to loose
  `!= null` comparison.
- WebCodecs AudioDecoder for opus emits `f32` (interleaved) AudioData —
  must deinterleave into separate AudioBuffer channels before playback.
- VideoDecoder/AudioDecoder/SubtleCrypto are SecureContext-only; need
  http://localhost or https:// on the *page origin*, not the WS targets.
- libsodium-wrappers ESM ships a broken relative import (`./libsodium.mjs`
  in a sibling package); switched to tweetnacl which has no such problem.
- WebCrypto's SubtleCrypto.digest() doesn't accept SharedArrayBuffer-backed
  Uint8Arrays in newer TS lib types; doesn't matter — we use @noble/hashes
  for sha256 anyway since Subtle is secure-context-only.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 13:55:40 +02:00

11 lines
529 KiB
JavaScript

var Or=Object.create;var In=Object.defineProperty;var wr=Object.getOwnPropertyDescriptor;var kr=Object.getOwnPropertyNames;var xr=Object.getPrototypeOf,vr=Object.prototype.hasOwnProperty;var pt=(p=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(p,{get:(i,o)=>(typeof require<"u"?require:i)[o]}):p)(function(p){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+p+'" is not supported')});var xe=(p,i)=>()=>(i||p((i={exports:{}}).exports,i),i.exports);var mr=(p,i,o,e)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of kr(i))!vr.call(p,t)&&t!==o&&In(p,t,{get:()=>i[t],enumerable:!(e=wr(i,t))||e.enumerable});return p};var Jn=(p,i,o)=>(o=p!=null?Or(xr(p)):{},mr(i||!p||!p.__esModule?In(o,"default",{value:p,enumerable:!0}):o,p));var Un=xe(()=>{});var Hn=xe((fo,Tt)=>{(function(p){"use strict";var i=function(h){var y,b=new Float64Array(16);if(h)for(y=0;y<h.length;y++)b[y]=h[y];return b},o=function(){throw new Error("no PRNG")},e=new Uint8Array(16),t=new Uint8Array(32);t[0]=9;var n=i(),r=i([1]),f=i([56129,1]),d=i([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),c=i([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),k=i([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),q=i([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),K=i([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function W(h,y,b,a){h[y]=b>>24&255,h[y+1]=b>>16&255,h[y+2]=b>>8&255,h[y+3]=b&255,h[y+4]=a>>24&255,h[y+5]=a>>16&255,h[y+6]=a>>8&255,h[y+7]=a&255}function re(h,y,b,a,_){var w,x=0;for(w=0;w<_;w++)x|=h[y+w]^b[a+w];return(1&x-1>>>8)-1}function V(h,y,b,a){return re(h,y,b,a,16)}function be(h,y,b,a){return re(h,y,b,a,32)}function Ve(h,y,b,a){for(var _=a[0]&255|(a[1]&255)<<8|(a[2]&255)<<16|(a[3]&255)<<24,w=b[0]&255|(b[1]&255)<<8|(b[2]&255)<<16|(b[3]&255)<<24,x=b[4]&255|(b[5]&255)<<8|(b[6]&255)<<16|(b[7]&255)<<24,D=b[8]&255|(b[9]&255)<<8|(b[10]&255)<<16|(b[11]&255)<<24,N=b[12]&255|(b[13]&255)<<8|(b[14]&255)<<16|(b[15]&255)<<24,U=a[4]&255|(a[5]&255)<<8|(a[6]&255)<<16|(a[7]&255)<<24,A=y[0]&255|(y[1]&255)<<8|(y[2]&255)<<16|(y[3]&255)<<24,de=y[4]&255|(y[5]&255)<<8|(y[6]&255)<<16|(y[7]&255)<<24,B=y[8]&255|(y[9]&255)<<8|(y[10]&255)<<16|(y[11]&255)<<24,Y=y[12]&255|(y[13]&255)<<8|(y[14]&255)<<16|(y[15]&255)<<24,G=a[8]&255|(a[9]&255)<<8|(a[10]&255)<<16|(a[11]&255)<<24,ee=b[16]&255|(b[17]&255)<<8|(b[18]&255)<<16|(b[19]&255)<<24,g=b[20]&255|(b[21]&255)<<8|(b[22]&255)<<16|(b[23]&255)<<24,X=b[24]&255|(b[25]&255)<<8|(b[26]&255)<<16|(b[27]&255)<<24,Z=b[28]&255|(b[29]&255)<<8|(b[30]&255)<<16|(b[31]&255)<<24,Q=a[12]&255|(a[13]&255)<<8|(a[14]&255)<<16|(a[15]&255)<<24,M=_,z=w,C=x,I=D,J=N,j=U,v=A,m=de,L=B,T=Y,R=G,F=ee,$=g,te=X,ie=Z,ne=Q,O,ue=0;ue<20;ue+=2)O=M+$|0,J^=O<<7|O>>>25,O=J+M|0,L^=O<<9|O>>>23,O=L+J|0,$^=O<<13|O>>>19,O=$+L|0,M^=O<<18|O>>>14,O=j+z|0,T^=O<<7|O>>>25,O=T+j|0,te^=O<<9|O>>>23,O=te+T|0,z^=O<<13|O>>>19,O=z+te|0,j^=O<<18|O>>>14,O=R+v|0,ie^=O<<7|O>>>25,O=ie+R|0,C^=O<<9|O>>>23,O=C+ie|0,v^=O<<13|O>>>19,O=v+C|0,R^=O<<18|O>>>14,O=ne+F|0,I^=O<<7|O>>>25,O=I+ne|0,m^=O<<9|O>>>23,O=m+I|0,F^=O<<13|O>>>19,O=F+m|0,ne^=O<<18|O>>>14,O=M+I|0,z^=O<<7|O>>>25,O=z+M|0,C^=O<<9|O>>>23,O=C+z|0,I^=O<<13|O>>>19,O=I+C|0,M^=O<<18|O>>>14,O=j+J|0,v^=O<<7|O>>>25,O=v+j|0,m^=O<<9|O>>>23,O=m+v|0,J^=O<<13|O>>>19,O=J+m|0,j^=O<<18|O>>>14,O=R+T|0,F^=O<<7|O>>>25,O=F+R|0,L^=O<<9|O>>>23,O=L+F|0,T^=O<<13|O>>>19,O=T+L|0,R^=O<<18|O>>>14,O=ne+ie|0,$^=O<<7|O>>>25,O=$+ne|0,te^=O<<9|O>>>23,O=te+$|0,ie^=O<<13|O>>>19,O=ie+te|0,ne^=O<<18|O>>>14;M=M+_|0,z=z+w|0,C=C+x|0,I=I+D|0,J=J+N|0,j=j+U|0,v=v+A|0,m=m+de|0,L=L+B|0,T=T+Y|0,R=R+G|0,F=F+ee|0,$=$+g|0,te=te+X|0,ie=ie+Z|0,ne=ne+Q|0,h[0]=M>>>0&255,h[1]=M>>>8&255,h[2]=M>>>16&255,h[3]=M>>>24&255,h[4]=z>>>0&255,h[5]=z>>>8&255,h[6]=z>>>16&255,h[7]=z>>>24&255,h[8]=C>>>0&255,h[9]=C>>>8&255,h[10]=C>>>16&255,h[11]=C>>>24&255,h[12]=I>>>0&255,h[13]=I>>>8&255,h[14]=I>>>16&255,h[15]=I>>>24&255,h[16]=J>>>0&255,h[17]=J>>>8&255,h[18]=J>>>16&255,h[19]=J>>>24&255,h[20]=j>>>0&255,h[21]=j>>>8&255,h[22]=j>>>16&255,h[23]=j>>>24&255,h[24]=v>>>0&255,h[25]=v>>>8&255,h[26]=v>>>16&255,h[27]=v>>>24&255,h[28]=m>>>0&255,h[29]=m>>>8&255,h[30]=m>>>16&255,h[31]=m>>>24&255,h[32]=L>>>0&255,h[33]=L>>>8&255,h[34]=L>>>16&255,h[35]=L>>>24&255,h[36]=T>>>0&255,h[37]=T>>>8&255,h[38]=T>>>16&255,h[39]=T>>>24&255,h[40]=R>>>0&255,h[41]=R>>>8&255,h[42]=R>>>16&255,h[43]=R>>>24&255,h[44]=F>>>0&255,h[45]=F>>>8&255,h[46]=F>>>16&255,h[47]=F>>>24&255,h[48]=$>>>0&255,h[49]=$>>>8&255,h[50]=$>>>16&255,h[51]=$>>>24&255,h[52]=te>>>0&255,h[53]=te>>>8&255,h[54]=te>>>16&255,h[55]=te>>>24&255,h[56]=ie>>>0&255,h[57]=ie>>>8&255,h[58]=ie>>>16&255,h[59]=ie>>>24&255,h[60]=ne>>>0&255,h[61]=ne>>>8&255,h[62]=ne>>>16&255,h[63]=ne>>>24&255}function Ze(h,y,b,a){for(var _=a[0]&255|(a[1]&255)<<8|(a[2]&255)<<16|(a[3]&255)<<24,w=b[0]&255|(b[1]&255)<<8|(b[2]&255)<<16|(b[3]&255)<<24,x=b[4]&255|(b[5]&255)<<8|(b[6]&255)<<16|(b[7]&255)<<24,D=b[8]&255|(b[9]&255)<<8|(b[10]&255)<<16|(b[11]&255)<<24,N=b[12]&255|(b[13]&255)<<8|(b[14]&255)<<16|(b[15]&255)<<24,U=a[4]&255|(a[5]&255)<<8|(a[6]&255)<<16|(a[7]&255)<<24,A=y[0]&255|(y[1]&255)<<8|(y[2]&255)<<16|(y[3]&255)<<24,de=y[4]&255|(y[5]&255)<<8|(y[6]&255)<<16|(y[7]&255)<<24,B=y[8]&255|(y[9]&255)<<8|(y[10]&255)<<16|(y[11]&255)<<24,Y=y[12]&255|(y[13]&255)<<8|(y[14]&255)<<16|(y[15]&255)<<24,G=a[8]&255|(a[9]&255)<<8|(a[10]&255)<<16|(a[11]&255)<<24,ee=b[16]&255|(b[17]&255)<<8|(b[18]&255)<<16|(b[19]&255)<<24,g=b[20]&255|(b[21]&255)<<8|(b[22]&255)<<16|(b[23]&255)<<24,X=b[24]&255|(b[25]&255)<<8|(b[26]&255)<<16|(b[27]&255)<<24,Z=b[28]&255|(b[29]&255)<<8|(b[30]&255)<<16|(b[31]&255)<<24,Q=a[12]&255|(a[13]&255)<<8|(a[14]&255)<<16|(a[15]&255)<<24,M=_,z=w,C=x,I=D,J=N,j=U,v=A,m=de,L=B,T=Y,R=G,F=ee,$=g,te=X,ie=Z,ne=Q,O,ue=0;ue<20;ue+=2)O=M+$|0,J^=O<<7|O>>>25,O=J+M|0,L^=O<<9|O>>>23,O=L+J|0,$^=O<<13|O>>>19,O=$+L|0,M^=O<<18|O>>>14,O=j+z|0,T^=O<<7|O>>>25,O=T+j|0,te^=O<<9|O>>>23,O=te+T|0,z^=O<<13|O>>>19,O=z+te|0,j^=O<<18|O>>>14,O=R+v|0,ie^=O<<7|O>>>25,O=ie+R|0,C^=O<<9|O>>>23,O=C+ie|0,v^=O<<13|O>>>19,O=v+C|0,R^=O<<18|O>>>14,O=ne+F|0,I^=O<<7|O>>>25,O=I+ne|0,m^=O<<9|O>>>23,O=m+I|0,F^=O<<13|O>>>19,O=F+m|0,ne^=O<<18|O>>>14,O=M+I|0,z^=O<<7|O>>>25,O=z+M|0,C^=O<<9|O>>>23,O=C+z|0,I^=O<<13|O>>>19,O=I+C|0,M^=O<<18|O>>>14,O=j+J|0,v^=O<<7|O>>>25,O=v+j|0,m^=O<<9|O>>>23,O=m+v|0,J^=O<<13|O>>>19,O=J+m|0,j^=O<<18|O>>>14,O=R+T|0,F^=O<<7|O>>>25,O=F+R|0,L^=O<<9|O>>>23,O=L+F|0,T^=O<<13|O>>>19,O=T+L|0,R^=O<<18|O>>>14,O=ne+ie|0,$^=O<<7|O>>>25,O=$+ne|0,te^=O<<9|O>>>23,O=te+$|0,ie^=O<<13|O>>>19,O=ie+te|0,ne^=O<<18|O>>>14;h[0]=M>>>0&255,h[1]=M>>>8&255,h[2]=M>>>16&255,h[3]=M>>>24&255,h[4]=j>>>0&255,h[5]=j>>>8&255,h[6]=j>>>16&255,h[7]=j>>>24&255,h[8]=R>>>0&255,h[9]=R>>>8&255,h[10]=R>>>16&255,h[11]=R>>>24&255,h[12]=ne>>>0&255,h[13]=ne>>>8&255,h[14]=ne>>>16&255,h[15]=ne>>>24&255,h[16]=v>>>0&255,h[17]=v>>>8&255,h[18]=v>>>16&255,h[19]=v>>>24&255,h[20]=m>>>0&255,h[21]=m>>>8&255,h[22]=m>>>16&255,h[23]=m>>>24&255,h[24]=L>>>0&255,h[25]=L>>>8&255,h[26]=L>>>16&255,h[27]=L>>>24&255,h[28]=T>>>0&255,h[29]=T>>>8&255,h[30]=T>>>16&255,h[31]=T>>>24&255}function We(h,y,b,a){Ve(h,y,b,a)}function Ue(h,y,b,a){Ze(h,y,b,a)}var De=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function Fe(h,y,b,a,_,w,x){var D=new Uint8Array(16),N=new Uint8Array(64),U,A;for(A=0;A<16;A++)D[A]=0;for(A=0;A<8;A++)D[A]=w[A];for(;_>=64;){for(We(N,D,x,De),A=0;A<64;A++)h[y+A]=b[a+A]^N[A];for(U=1,A=8;A<16;A++)U=U+(D[A]&255)|0,D[A]=U&255,U>>>=8;_-=64,y+=64,a+=64}if(_>0)for(We(N,D,x,De),A=0;A<_;A++)h[y+A]=b[a+A]^N[A];return 0}function Pe(h,y,b,a,_){var w=new Uint8Array(16),x=new Uint8Array(64),D,N;for(N=0;N<16;N++)w[N]=0;for(N=0;N<8;N++)w[N]=a[N];for(;b>=64;){for(We(x,w,_,De),N=0;N<64;N++)h[y+N]=x[N];for(D=1,N=8;N<16;N++)D=D+(w[N]&255)|0,w[N]=D&255,D>>>=8;b-=64,y+=64}if(b>0)for(We(x,w,_,De),N=0;N<b;N++)h[y+N]=x[N];return 0}function Pn(h,y,b,a,_){var w=new Uint8Array(32);Ue(w,a,_,De);for(var x=new Uint8Array(8),D=0;D<8;D++)x[D]=a[D+16];return Pe(h,y,b,x,w)}function Ut(h,y,b,a,_,w,x){var D=new Uint8Array(32);Ue(D,w,x,De);for(var N=new Uint8Array(8),U=0;U<8;U++)N[U]=w[U+16];return Fe(h,y,b,a,_,N,D)}var Ot=function(h){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var y,b,a,_,w,x,D,N;y=h[0]&255|(h[1]&255)<<8,this.r[0]=y&8191,b=h[2]&255|(h[3]&255)<<8,this.r[1]=(y>>>13|b<<3)&8191,a=h[4]&255|(h[5]&255)<<8,this.r[2]=(b>>>10|a<<6)&7939,_=h[6]&255|(h[7]&255)<<8,this.r[3]=(a>>>7|_<<9)&8191,w=h[8]&255|(h[9]&255)<<8,this.r[4]=(_>>>4|w<<12)&255,this.r[5]=w>>>1&8190,x=h[10]&255|(h[11]&255)<<8,this.r[6]=(w>>>14|x<<2)&8191,D=h[12]&255|(h[13]&255)<<8,this.r[7]=(x>>>11|D<<5)&8065,N=h[14]&255|(h[15]&255)<<8,this.r[8]=(D>>>8|N<<8)&8191,this.r[9]=N>>>5&127,this.pad[0]=h[16]&255|(h[17]&255)<<8,this.pad[1]=h[18]&255|(h[19]&255)<<8,this.pad[2]=h[20]&255|(h[21]&255)<<8,this.pad[3]=h[22]&255|(h[23]&255)<<8,this.pad[4]=h[24]&255|(h[25]&255)<<8,this.pad[5]=h[26]&255|(h[27]&255)<<8,this.pad[6]=h[28]&255|(h[29]&255)<<8,this.pad[7]=h[30]&255|(h[31]&255)<<8};Ot.prototype.blocks=function(h,y,b){for(var a=this.fin?0:2048,_,w,x,D,N,U,A,de,B,Y,G,ee,g,X,Z,Q,M,z,C,I=this.h[0],J=this.h[1],j=this.h[2],v=this.h[3],m=this.h[4],L=this.h[5],T=this.h[6],R=this.h[7],F=this.h[8],$=this.h[9],te=this.r[0],ie=this.r[1],ne=this.r[2],O=this.r[3],ue=this.r[4],ae=this.r[5],se=this.r[6],oe=this.r[7],le=this.r[8],ce=this.r[9];b>=16;)_=h[y+0]&255|(h[y+1]&255)<<8,I+=_&8191,w=h[y+2]&255|(h[y+3]&255)<<8,J+=(_>>>13|w<<3)&8191,x=h[y+4]&255|(h[y+5]&255)<<8,j+=(w>>>10|x<<6)&8191,D=h[y+6]&255|(h[y+7]&255)<<8,v+=(x>>>7|D<<9)&8191,N=h[y+8]&255|(h[y+9]&255)<<8,m+=(D>>>4|N<<12)&8191,L+=N>>>1&8191,U=h[y+10]&255|(h[y+11]&255)<<8,T+=(N>>>14|U<<2)&8191,A=h[y+12]&255|(h[y+13]&255)<<8,R+=(U>>>11|A<<5)&8191,de=h[y+14]&255|(h[y+15]&255)<<8,F+=(A>>>8|de<<8)&8191,$+=de>>>5|a,B=0,Y=B,Y+=I*te,Y+=J*(5*ce),Y+=j*(5*le),Y+=v*(5*oe),Y+=m*(5*se),B=Y>>>13,Y&=8191,Y+=L*(5*ae),Y+=T*(5*ue),Y+=R*(5*O),Y+=F*(5*ne),Y+=$*(5*ie),B+=Y>>>13,Y&=8191,G=B,G+=I*ie,G+=J*te,G+=j*(5*ce),G+=v*(5*le),G+=m*(5*oe),B=G>>>13,G&=8191,G+=L*(5*se),G+=T*(5*ae),G+=R*(5*ue),G+=F*(5*O),G+=$*(5*ne),B+=G>>>13,G&=8191,ee=B,ee+=I*ne,ee+=J*ie,ee+=j*te,ee+=v*(5*ce),ee+=m*(5*le),B=ee>>>13,ee&=8191,ee+=L*(5*oe),ee+=T*(5*se),ee+=R*(5*ae),ee+=F*(5*ue),ee+=$*(5*O),B+=ee>>>13,ee&=8191,g=B,g+=I*O,g+=J*ne,g+=j*ie,g+=v*te,g+=m*(5*ce),B=g>>>13,g&=8191,g+=L*(5*le),g+=T*(5*oe),g+=R*(5*se),g+=F*(5*ae),g+=$*(5*ue),B+=g>>>13,g&=8191,X=B,X+=I*ue,X+=J*O,X+=j*ne,X+=v*ie,X+=m*te,B=X>>>13,X&=8191,X+=L*(5*ce),X+=T*(5*le),X+=R*(5*oe),X+=F*(5*se),X+=$*(5*ae),B+=X>>>13,X&=8191,Z=B,Z+=I*ae,Z+=J*ue,Z+=j*O,Z+=v*ne,Z+=m*ie,B=Z>>>13,Z&=8191,Z+=L*te,Z+=T*(5*ce),Z+=R*(5*le),Z+=F*(5*oe),Z+=$*(5*se),B+=Z>>>13,Z&=8191,Q=B,Q+=I*se,Q+=J*ae,Q+=j*ue,Q+=v*O,Q+=m*ne,B=Q>>>13,Q&=8191,Q+=L*ie,Q+=T*te,Q+=R*(5*ce),Q+=F*(5*le),Q+=$*(5*oe),B+=Q>>>13,Q&=8191,M=B,M+=I*oe,M+=J*se,M+=j*ae,M+=v*ue,M+=m*O,B=M>>>13,M&=8191,M+=L*ne,M+=T*ie,M+=R*te,M+=F*(5*ce),M+=$*(5*le),B+=M>>>13,M&=8191,z=B,z+=I*le,z+=J*oe,z+=j*se,z+=v*ae,z+=m*ue,B=z>>>13,z&=8191,z+=L*O,z+=T*ne,z+=R*ie,z+=F*te,z+=$*(5*ce),B+=z>>>13,z&=8191,C=B,C+=I*ce,C+=J*le,C+=j*oe,C+=v*se,C+=m*ae,B=C>>>13,C&=8191,C+=L*ue,C+=T*O,C+=R*ne,C+=F*ie,C+=$*te,B+=C>>>13,C&=8191,B=(B<<2)+B|0,B=B+Y|0,Y=B&8191,B=B>>>13,G+=B,I=Y,J=G,j=ee,v=g,m=X,L=Z,T=Q,R=M,F=z,$=C,y+=16,b-=16;this.h[0]=I,this.h[1]=J,this.h[2]=j,this.h[3]=v,this.h[4]=m,this.h[5]=L,this.h[6]=T,this.h[7]=R,this.h[8]=F,this.h[9]=$},Ot.prototype.finish=function(h,y){var b=new Uint16Array(10),a,_,w,x;if(this.leftover){for(x=this.leftover,this.buffer[x++]=1;x<16;x++)this.buffer[x]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(a=this.h[1]>>>13,this.h[1]&=8191,x=2;x<10;x++)this.h[x]+=a,a=this.h[x]>>>13,this.h[x]&=8191;for(this.h[0]+=a*5,a=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=a,a=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=a,b[0]=this.h[0]+5,a=b[0]>>>13,b[0]&=8191,x=1;x<10;x++)b[x]=this.h[x]+a,a=b[x]>>>13,b[x]&=8191;for(b[9]-=8192,_=(a^1)-1,x=0;x<10;x++)b[x]&=_;for(_=~_,x=0;x<10;x++)this.h[x]=this.h[x]&_|b[x];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,w=this.h[0]+this.pad[0],this.h[0]=w&65535,x=1;x<8;x++)w=(this.h[x]+this.pad[x]|0)+(w>>>16)|0,this.h[x]=w&65535;h[y+0]=this.h[0]>>>0&255,h[y+1]=this.h[0]>>>8&255,h[y+2]=this.h[1]>>>0&255,h[y+3]=this.h[1]>>>8&255,h[y+4]=this.h[2]>>>0&255,h[y+5]=this.h[2]>>>8&255,h[y+6]=this.h[3]>>>0&255,h[y+7]=this.h[3]>>>8&255,h[y+8]=this.h[4]>>>0&255,h[y+9]=this.h[4]>>>8&255,h[y+10]=this.h[5]>>>0&255,h[y+11]=this.h[5]>>>8&255,h[y+12]=this.h[6]>>>0&255,h[y+13]=this.h[6]>>>8&255,h[y+14]=this.h[7]>>>0&255,h[y+15]=this.h[7]>>>8&255},Ot.prototype.update=function(h,y,b){var a,_;if(this.leftover){for(_=16-this.leftover,_>b&&(_=b),a=0;a<_;a++)this.buffer[this.leftover+a]=h[y+a];if(b-=_,y+=_,this.leftover+=_,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(b>=16&&(_=b-b%16,this.blocks(h,y,_),y+=_,b-=_),b){for(a=0;a<b;a++)this.buffer[this.leftover+a]=h[y+a];this.leftover+=b}};function Ht(h,y,b,a,_,w){var x=new Ot(w);return x.update(b,a,_),x.finish(h,y),0}function Sn(h,y,b,a,_,w){var x=new Uint8Array(16);return Ht(x,0,b,a,_,w),V(h,y,x,0)}function zt(h,y,b,a,_){var w;if(b<32)return-1;for(Ut(h,0,y,0,b,a,_),Ht(h,16,h,32,b-32,h),w=0;w<16;w++)h[w]=0;return 0}function Kt(h,y,b,a,_){var w,x=new Uint8Array(32);if(b<32||(Pn(x,0,32,a,_),Sn(y,16,y,32,b-32,x)!==0))return-1;for(Ut(h,0,y,0,b,a,_),w=0;w<32;w++)h[w]=0;return 0}function ze(h,y){var b;for(b=0;b<16;b++)h[b]=y[b]|0}function $t(h){var y,b,a=1;for(y=0;y<16;y++)b=h[y]+a+65535,a=Math.floor(b/65536),h[y]=b-a*65536;h[0]+=a-1+37*(a-1)}function rt(h,y,b){for(var a,_=~(b-1),w=0;w<16;w++)a=_&(h[w]^y[w]),h[w]^=a,y[w]^=a}function ot(h,y){var b,a,_,w=i(),x=i();for(b=0;b<16;b++)x[b]=y[b];for($t(x),$t(x),$t(x),a=0;a<2;a++){for(w[0]=x[0]-65517,b=1;b<15;b++)w[b]=x[b]-65535-(w[b-1]>>16&1),w[b-1]&=65535;w[15]=x[15]-32767-(w[14]>>16&1),_=w[15]>>16&1,w[14]&=65535,rt(x,w,1-_)}for(b=0;b<16;b++)h[2*b]=x[b]&255,h[2*b+1]=x[b]>>8}function En(h,y){var b=new Uint8Array(32),a=new Uint8Array(32);return ot(b,h),ot(a,y),be(b,0,a,0)}function Tn(h){var y=new Uint8Array(32);return ot(y,h),y[0]&1}function Vt(h,y){var b;for(b=0;b<16;b++)h[b]=y[2*b]+(y[2*b+1]<<8);h[15]&=32767}function Ce(h,y,b){for(var a=0;a<16;a++)h[a]=y[a]+b[a]}function Be(h,y,b){for(var a=0;a<16;a++)h[a]=y[a]-b[a]}function fe(h,y,b){var a,_,w=0,x=0,D=0,N=0,U=0,A=0,de=0,B=0,Y=0,G=0,ee=0,g=0,X=0,Z=0,Q=0,M=0,z=0,C=0,I=0,J=0,j=0,v=0,m=0,L=0,T=0,R=0,F=0,$=0,te=0,ie=0,ne=0,O=b[0],ue=b[1],ae=b[2],se=b[3],oe=b[4],le=b[5],ce=b[6],ke=b[7],he=b[8],_e=b[9],Oe=b[10],we=b[11],ve=b[12],Se=b[13],Ee=b[14],Te=b[15];a=y[0],w+=a*O,x+=a*ue,D+=a*ae,N+=a*se,U+=a*oe,A+=a*le,de+=a*ce,B+=a*ke,Y+=a*he,G+=a*_e,ee+=a*Oe,g+=a*we,X+=a*ve,Z+=a*Se,Q+=a*Ee,M+=a*Te,a=y[1],x+=a*O,D+=a*ue,N+=a*ae,U+=a*se,A+=a*oe,de+=a*le,B+=a*ce,Y+=a*ke,G+=a*he,ee+=a*_e,g+=a*Oe,X+=a*we,Z+=a*ve,Q+=a*Se,M+=a*Ee,z+=a*Te,a=y[2],D+=a*O,N+=a*ue,U+=a*ae,A+=a*se,de+=a*oe,B+=a*le,Y+=a*ce,G+=a*ke,ee+=a*he,g+=a*_e,X+=a*Oe,Z+=a*we,Q+=a*ve,M+=a*Se,z+=a*Ee,C+=a*Te,a=y[3],N+=a*O,U+=a*ue,A+=a*ae,de+=a*se,B+=a*oe,Y+=a*le,G+=a*ce,ee+=a*ke,g+=a*he,X+=a*_e,Z+=a*Oe,Q+=a*we,M+=a*ve,z+=a*Se,C+=a*Ee,I+=a*Te,a=y[4],U+=a*O,A+=a*ue,de+=a*ae,B+=a*se,Y+=a*oe,G+=a*le,ee+=a*ce,g+=a*ke,X+=a*he,Z+=a*_e,Q+=a*Oe,M+=a*we,z+=a*ve,C+=a*Se,I+=a*Ee,J+=a*Te,a=y[5],A+=a*O,de+=a*ue,B+=a*ae,Y+=a*se,G+=a*oe,ee+=a*le,g+=a*ce,X+=a*ke,Z+=a*he,Q+=a*_e,M+=a*Oe,z+=a*we,C+=a*ve,I+=a*Se,J+=a*Ee,j+=a*Te,a=y[6],de+=a*O,B+=a*ue,Y+=a*ae,G+=a*se,ee+=a*oe,g+=a*le,X+=a*ce,Z+=a*ke,Q+=a*he,M+=a*_e,z+=a*Oe,C+=a*we,I+=a*ve,J+=a*Se,j+=a*Ee,v+=a*Te,a=y[7],B+=a*O,Y+=a*ue,G+=a*ae,ee+=a*se,g+=a*oe,X+=a*le,Z+=a*ce,Q+=a*ke,M+=a*he,z+=a*_e,C+=a*Oe,I+=a*we,J+=a*ve,j+=a*Se,v+=a*Ee,m+=a*Te,a=y[8],Y+=a*O,G+=a*ue,ee+=a*ae,g+=a*se,X+=a*oe,Z+=a*le,Q+=a*ce,M+=a*ke,z+=a*he,C+=a*_e,I+=a*Oe,J+=a*we,j+=a*ve,v+=a*Se,m+=a*Ee,L+=a*Te,a=y[9],G+=a*O,ee+=a*ue,g+=a*ae,X+=a*se,Z+=a*oe,Q+=a*le,M+=a*ce,z+=a*ke,C+=a*he,I+=a*_e,J+=a*Oe,j+=a*we,v+=a*ve,m+=a*Se,L+=a*Ee,T+=a*Te,a=y[10],ee+=a*O,g+=a*ue,X+=a*ae,Z+=a*se,Q+=a*oe,M+=a*le,z+=a*ce,C+=a*ke,I+=a*he,J+=a*_e,j+=a*Oe,v+=a*we,m+=a*ve,L+=a*Se,T+=a*Ee,R+=a*Te,a=y[11],g+=a*O,X+=a*ue,Z+=a*ae,Q+=a*se,M+=a*oe,z+=a*le,C+=a*ce,I+=a*ke,J+=a*he,j+=a*_e,v+=a*Oe,m+=a*we,L+=a*ve,T+=a*Se,R+=a*Ee,F+=a*Te,a=y[12],X+=a*O,Z+=a*ue,Q+=a*ae,M+=a*se,z+=a*oe,C+=a*le,I+=a*ce,J+=a*ke,j+=a*he,v+=a*_e,m+=a*Oe,L+=a*we,T+=a*ve,R+=a*Se,F+=a*Ee,$+=a*Te,a=y[13],Z+=a*O,Q+=a*ue,M+=a*ae,z+=a*se,C+=a*oe,I+=a*le,J+=a*ce,j+=a*ke,v+=a*he,m+=a*_e,L+=a*Oe,T+=a*we,R+=a*ve,F+=a*Se,$+=a*Ee,te+=a*Te,a=y[14],Q+=a*O,M+=a*ue,z+=a*ae,C+=a*se,I+=a*oe,J+=a*le,j+=a*ce,v+=a*ke,m+=a*he,L+=a*_e,T+=a*Oe,R+=a*we,F+=a*ve,$+=a*Se,te+=a*Ee,ie+=a*Te,a=y[15],M+=a*O,z+=a*ue,C+=a*ae,I+=a*se,J+=a*oe,j+=a*le,v+=a*ce,m+=a*ke,L+=a*he,T+=a*_e,R+=a*Oe,F+=a*we,$+=a*ve,te+=a*Se,ie+=a*Ee,ne+=a*Te,w+=38*z,x+=38*C,D+=38*I,N+=38*J,U+=38*j,A+=38*v,de+=38*m,B+=38*L,Y+=38*T,G+=38*R,ee+=38*F,g+=38*$,X+=38*te,Z+=38*ie,Q+=38*ne,_=1,a=w+_+65535,_=Math.floor(a/65536),w=a-_*65536,a=x+_+65535,_=Math.floor(a/65536),x=a-_*65536,a=D+_+65535,_=Math.floor(a/65536),D=a-_*65536,a=N+_+65535,_=Math.floor(a/65536),N=a-_*65536,a=U+_+65535,_=Math.floor(a/65536),U=a-_*65536,a=A+_+65535,_=Math.floor(a/65536),A=a-_*65536,a=de+_+65535,_=Math.floor(a/65536),de=a-_*65536,a=B+_+65535,_=Math.floor(a/65536),B=a-_*65536,a=Y+_+65535,_=Math.floor(a/65536),Y=a-_*65536,a=G+_+65535,_=Math.floor(a/65536),G=a-_*65536,a=ee+_+65535,_=Math.floor(a/65536),ee=a-_*65536,a=g+_+65535,_=Math.floor(a/65536),g=a-_*65536,a=X+_+65535,_=Math.floor(a/65536),X=a-_*65536,a=Z+_+65535,_=Math.floor(a/65536),Z=a-_*65536,a=Q+_+65535,_=Math.floor(a/65536),Q=a-_*65536,a=M+_+65535,_=Math.floor(a/65536),M=a-_*65536,w+=_-1+37*(_-1),_=1,a=w+_+65535,_=Math.floor(a/65536),w=a-_*65536,a=x+_+65535,_=Math.floor(a/65536),x=a-_*65536,a=D+_+65535,_=Math.floor(a/65536),D=a-_*65536,a=N+_+65535,_=Math.floor(a/65536),N=a-_*65536,a=U+_+65535,_=Math.floor(a/65536),U=a-_*65536,a=A+_+65535,_=Math.floor(a/65536),A=a-_*65536,a=de+_+65535,_=Math.floor(a/65536),de=a-_*65536,a=B+_+65535,_=Math.floor(a/65536),B=a-_*65536,a=Y+_+65535,_=Math.floor(a/65536),Y=a-_*65536,a=G+_+65535,_=Math.floor(a/65536),G=a-_*65536,a=ee+_+65535,_=Math.floor(a/65536),ee=a-_*65536,a=g+_+65535,_=Math.floor(a/65536),g=a-_*65536,a=X+_+65535,_=Math.floor(a/65536),X=a-_*65536,a=Z+_+65535,_=Math.floor(a/65536),Z=a-_*65536,a=Q+_+65535,_=Math.floor(a/65536),Q=a-_*65536,a=M+_+65535,_=Math.floor(a/65536),M=a-_*65536,w+=_-1+37*(_-1),h[0]=w,h[1]=x,h[2]=D,h[3]=N,h[4]=U,h[5]=A,h[6]=de,h[7]=B,h[8]=Y,h[9]=G,h[10]=ee,h[11]=g,h[12]=X,h[13]=Z,h[14]=Q,h[15]=M}function Ne(h,y){fe(h,y,y)}function Dn(h,y){var b=i(),a;for(a=0;a<16;a++)b[a]=y[a];for(a=253;a>=0;a--)Ne(b,b),a!==2&&a!==4&&fe(b,b,y);for(a=0;a<16;a++)h[a]=b[a]}function Rn(h,y){var b=i(),a;for(a=0;a<16;a++)b[a]=y[a];for(a=250;a>=0;a--)Ne(b,b),a!==1&&fe(b,b,y);for(a=0;a<16;a++)h[a]=b[a]}function wt(h,y,b){var a=new Uint8Array(32),_=new Float64Array(80),w,x,D=i(),N=i(),U=i(),A=i(),de=i(),B=i();for(x=0;x<31;x++)a[x]=y[x];for(a[31]=y[31]&127|64,a[0]&=248,Vt(_,b),x=0;x<16;x++)N[x]=_[x],A[x]=D[x]=U[x]=0;for(D[0]=A[0]=1,x=254;x>=0;--x)w=a[x>>>3]>>>(x&7)&1,rt(D,N,w),rt(U,A,w),Ce(de,D,U),Be(D,D,U),Ce(U,N,A),Be(N,N,A),Ne(A,de),Ne(B,D),fe(D,U,D),fe(U,N,de),Ce(de,D,U),Be(D,D,U),Ne(N,D),Be(U,A,B),fe(D,U,f),Ce(D,D,A),fe(U,U,D),fe(D,A,B),fe(A,N,_),Ne(N,de),rt(D,N,w),rt(U,A,w);for(x=0;x<16;x++)_[x+16]=D[x],_[x+32]=U[x],_[x+48]=N[x],_[x+64]=A[x];var Y=_.subarray(32),G=_.subarray(16);return Dn(Y,Y),fe(G,G,Y),ot(h,G),0}function kt(h,y){return wt(h,y,t)}function Ln(h,y){return o(y,32),kt(h,y)}function xt(h,y,b){var a=new Uint8Array(32);return wt(a,b,y),Ue(h,e,a,De)}var qn=zt,ar=Kt;function sr(h,y,b,a,_,w){var x=new Uint8Array(32);return xt(x,_,w),qn(h,y,b,a,x)}function pr(h,y,b,a,_,w){var x=new Uint8Array(32);return xt(x,_,w),ar(h,y,b,a,x)}var Fn=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function Nn(h,y,b,a){for(var _=new Int32Array(16),w=new Int32Array(16),x,D,N,U,A,de,B,Y,G,ee,g,X,Z,Q,M,z,C,I,J,j,v,m,L,T,R,F,$=h[0],te=h[1],ie=h[2],ne=h[3],O=h[4],ue=h[5],ae=h[6],se=h[7],oe=y[0],le=y[1],ce=y[2],ke=y[3],he=y[4],_e=y[5],Oe=y[6],we=y[7],ve=0;a>=128;){for(J=0;J<16;J++)j=8*J+ve,_[J]=b[j+0]<<24|b[j+1]<<16|b[j+2]<<8|b[j+3],w[J]=b[j+4]<<24|b[j+5]<<16|b[j+6]<<8|b[j+7];for(J=0;J<80;J++)if(x=$,D=te,N=ie,U=ne,A=O,de=ue,B=ae,Y=se,G=oe,ee=le,g=ce,X=ke,Z=he,Q=_e,M=Oe,z=we,v=se,m=we,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=(O>>>14|he<<18)^(O>>>18|he<<14)^(he>>>9|O<<23),m=(he>>>14|O<<18)^(he>>>18|O<<14)^(O>>>9|he<<23),L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,v=O&ue^~O&ae,m=he&_e^~he&Oe,L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,v=Fn[J*2],m=Fn[J*2+1],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,v=_[J%16],m=w[J%16],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,C=R&65535|F<<16,I=L&65535|T<<16,v=C,m=I,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=($>>>28|oe<<4)^(oe>>>2|$<<30)^(oe>>>7|$<<25),m=(oe>>>28|$<<4)^($>>>2|oe<<30)^($>>>7|oe<<25),L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,v=$&te^$&ie^te&ie,m=oe&le^oe&ce^le&ce,L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,Y=R&65535|F<<16,z=L&65535|T<<16,v=U,m=X,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=C,m=I,L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,U=R&65535|F<<16,X=L&65535|T<<16,te=x,ie=D,ne=N,O=U,ue=A,ae=de,se=B,$=Y,le=G,ce=ee,ke=g,he=X,_e=Z,Oe=Q,we=M,oe=z,J%16===15)for(j=0;j<16;j++)v=_[j],m=w[j],L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=_[(j+9)%16],m=w[(j+9)%16],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,C=_[(j+1)%16],I=w[(j+1)%16],v=(C>>>1|I<<31)^(C>>>8|I<<24)^C>>>7,m=(I>>>1|C<<31)^(I>>>8|C<<24)^(I>>>7|C<<25),L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,C=_[(j+14)%16],I=w[(j+14)%16],v=(C>>>19|I<<13)^(I>>>29|C<<3)^C>>>6,m=(I>>>19|C<<13)^(C>>>29|I<<3)^(I>>>6|C<<26),L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,_[j]=R&65535|F<<16,w[j]=L&65535|T<<16;v=$,m=oe,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[0],m=y[0],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[0]=$=R&65535|F<<16,y[0]=oe=L&65535|T<<16,v=te,m=le,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[1],m=y[1],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[1]=te=R&65535|F<<16,y[1]=le=L&65535|T<<16,v=ie,m=ce,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[2],m=y[2],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[2]=ie=R&65535|F<<16,y[2]=ce=L&65535|T<<16,v=ne,m=ke,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[3],m=y[3],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[3]=ne=R&65535|F<<16,y[3]=ke=L&65535|T<<16,v=O,m=he,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[4],m=y[4],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[4]=O=R&65535|F<<16,y[4]=he=L&65535|T<<16,v=ue,m=_e,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[5],m=y[5],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[5]=ue=R&65535|F<<16,y[5]=_e=L&65535|T<<16,v=ae,m=Oe,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[6],m=y[6],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[6]=ae=R&65535|F<<16,y[6]=Oe=L&65535|T<<16,v=se,m=we,L=m&65535,T=m>>>16,R=v&65535,F=v>>>16,v=h[7],m=y[7],L+=m&65535,T+=m>>>16,R+=v&65535,F+=v>>>16,T+=L>>>16,R+=T>>>16,F+=R>>>16,h[7]=se=R&65535|F<<16,y[7]=we=L&65535|T<<16,ve+=128,a-=128}return a}function ge(h,y,b){var a=new Int32Array(8),_=new Int32Array(8),w=new Uint8Array(256),x,D=b;for(a[0]=1779033703,a[1]=3144134277,a[2]=1013904242,a[3]=2773480762,a[4]=1359893119,a[5]=2600822924,a[6]=528734635,a[7]=1541459225,_[0]=4089235720,_[1]=2227873595,_[2]=4271175723,_[3]=1595750129,_[4]=2917565137,_[5]=725511199,_[6]=4215389547,_[7]=327033209,Nn(a,_,y,b),b%=128,x=0;x<b;x++)w[x]=y[D-b+x];for(w[b]=128,b=256-128*(b<112?1:0),w[b-9]=0,W(w,b-8,D/536870912|0,D<<3),Nn(a,_,w,b),x=0;x<8;x++)W(h,8*x,a[x],_[x]);return 0}function vt(h,y){var b=i(),a=i(),_=i(),w=i(),x=i(),D=i(),N=i(),U=i(),A=i();Be(b,h[1],h[0]),Be(A,y[1],y[0]),fe(b,b,A),Ce(a,h[0],h[1]),Ce(A,y[0],y[1]),fe(a,a,A),fe(_,h[3],y[3]),fe(_,_,c),fe(w,h[2],y[2]),Ce(w,w,w),Be(x,a,b),Be(D,w,_),Ce(N,w,_),Ce(U,a,b),fe(h[0],x,D),fe(h[1],U,N),fe(h[2],N,D),fe(h[3],x,U)}function jn(h,y,b){var a;for(a=0;a<4;a++)rt(h[a],y[a],b)}function Wt(h,y){var b=i(),a=i(),_=i();Dn(_,y[2]),fe(b,y[0],_),fe(a,y[1],_),ot(h,a),h[31]^=Tn(b)<<7}function Yt(h,y,b){var a,_;for(ze(h[0],n),ze(h[1],r),ze(h[2],r),ze(h[3],n),_=255;_>=0;--_)a=b[_/8|0]>>(_&7)&1,jn(h,y,a),vt(y,h),vt(h,h),jn(h,y,a)}function mt(h,y){var b=[i(),i(),i(),i()];ze(b[0],k),ze(b[1],q),ze(b[2],r),fe(b[3],k,q),Yt(h,b,y)}function Gt(h,y,b){var a=new Uint8Array(64),_=[i(),i(),i(),i()],w;for(b||o(y,32),ge(a,y,32),a[0]&=248,a[31]&=127,a[31]|=64,mt(_,a),Wt(h,_),w=0;w<32;w++)y[w+32]=h[w];return 0}var Pt=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Xt(h,y){var b,a,_,w;for(a=63;a>=32;--a){for(b=0,_=a-32,w=a-12;_<w;++_)y[_]+=b-16*y[a]*Pt[_-(a-32)],b=Math.floor((y[_]+128)/256),y[_]-=b*256;y[_]+=b,y[a]=0}for(b=0,_=0;_<32;_++)y[_]+=b-(y[31]>>4)*Pt[_],b=y[_]>>8,y[_]&=255;for(_=0;_<32;_++)y[_]-=b*Pt[_];for(a=0;a<32;a++)y[a+1]+=y[a]>>8,h[a]=y[a]&255}function Qt(h){var y=new Float64Array(64),b;for(b=0;b<64;b++)y[b]=h[b];for(b=0;b<64;b++)h[b]=0;Xt(h,y)}function An(h,y,b,a){var _=new Uint8Array(64),w=new Uint8Array(64),x=new Uint8Array(64),D,N,U=new Float64Array(64),A=[i(),i(),i(),i()];ge(_,a,32),_[0]&=248,_[31]&=127,_[31]|=64;var de=b+64;for(D=0;D<b;D++)h[64+D]=y[D];for(D=0;D<32;D++)h[32+D]=_[32+D];for(ge(x,h.subarray(32),b+32),Qt(x),mt(A,x),Wt(h,A),D=32;D<64;D++)h[D]=a[D];for(ge(w,h,b+64),Qt(w),D=0;D<64;D++)U[D]=0;for(D=0;D<32;D++)U[D]=x[D];for(D=0;D<32;D++)for(N=0;N<32;N++)U[D+N]+=w[D]*_[N];return Xt(h.subarray(32),U),de}function hr(h,y){var b=i(),a=i(),_=i(),w=i(),x=i(),D=i(),N=i();return ze(h[2],r),Vt(h[1],y),Ne(_,h[1]),fe(w,_,d),Be(_,_,h[2]),Ce(w,h[2],w),Ne(x,w),Ne(D,x),fe(N,D,x),fe(b,N,_),fe(b,b,w),Rn(b,b),fe(b,b,_),fe(b,b,w),fe(b,b,w),fe(h[0],b,w),Ne(a,h[0]),fe(a,a,w),En(a,_)&&fe(h[0],h[0],K),Ne(a,h[0]),fe(a,a,w),En(a,_)?-1:(Tn(h[0])===y[31]>>7&&Be(h[0],n,h[0]),fe(h[3],h[0],h[1]),0)}function Zt(h,y,b,a){var _,w=new Uint8Array(32),x=new Uint8Array(64),D=[i(),i(),i(),i()],N=[i(),i(),i(),i()];if(b<64||hr(N,a))return-1;for(_=0;_<b;_++)h[_]=y[_];for(_=0;_<32;_++)h[_+32]=a[_];if(ge(x,h,b),Qt(x),Yt(D,N,x),mt(N,y.subarray(32)),vt(D,N),Wt(w,D),b-=64,be(y,0,w,0)){for(_=0;_<b;_++)h[_]=0;return-1}for(_=0;_<b;_++)h[_]=y[_+64];return b}var gt=32,St=24,ct=32,ut=16,dt=32,Et=32,at=32,st=32,en=32,Cn=St,br=ct,yr=ut,Ke=64,et=32,ft=64,tn=32,nn=64;p.lowlevel={crypto_core_hsalsa20:Ue,crypto_stream_xor:Ut,crypto_stream:Pn,crypto_stream_salsa20_xor:Fe,crypto_stream_salsa20:Pe,crypto_onetimeauth:Ht,crypto_onetimeauth_verify:Sn,crypto_verify_16:V,crypto_verify_32:be,crypto_secretbox:zt,crypto_secretbox_open:Kt,crypto_scalarmult:wt,crypto_scalarmult_base:kt,crypto_box_beforenm:xt,crypto_box_afternm:qn,crypto_box:sr,crypto_box_open:pr,crypto_box_keypair:Ln,crypto_hash:ge,crypto_sign:An,crypto_sign_keypair:Gt,crypto_sign_open:Zt,crypto_secretbox_KEYBYTES:gt,crypto_secretbox_NONCEBYTES:St,crypto_secretbox_ZEROBYTES:ct,crypto_secretbox_BOXZEROBYTES:ut,crypto_scalarmult_BYTES:dt,crypto_scalarmult_SCALARBYTES:Et,crypto_box_PUBLICKEYBYTES:at,crypto_box_SECRETKEYBYTES:st,crypto_box_BEFORENMBYTES:en,crypto_box_NONCEBYTES:Cn,crypto_box_ZEROBYTES:br,crypto_box_BOXZEROBYTES:yr,crypto_sign_BYTES:Ke,crypto_sign_PUBLICKEYBYTES:et,crypto_sign_SECRETKEYBYTES:ft,crypto_sign_SEEDBYTES:tn,crypto_hash_BYTES:nn,gf:i,D:d,L:Pt,pack25519:ot,unpack25519:Vt,M:fe,A:Ce,S:Ne,Z:Be,pow2523:Rn,add:vt,set25519:ze,modL:Xt,scalarmult:Yt,scalarbase:mt};function Bn(h,y){if(h.length!==gt)throw new Error("bad key size");if(y.length!==St)throw new Error("bad nonce size")}function _r(h,y){if(h.length!==at)throw new Error("bad public key size");if(y.length!==st)throw new Error("bad secret key size")}function Le(){for(var h=0;h<arguments.length;h++)if(!(arguments[h]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function Mn(h){for(var y=0;y<h.length;y++)h[y]=0}p.randomBytes=function(h){var y=new Uint8Array(h);return o(y,h),y},p.secretbox=function(h,y,b){Le(h,y,b),Bn(b,y);for(var a=new Uint8Array(ct+h.length),_=new Uint8Array(a.length),w=0;w<h.length;w++)a[w+ct]=h[w];return zt(_,a,a.length,y,b),_.subarray(ut)},p.secretbox.open=function(h,y,b){Le(h,y,b),Bn(b,y);for(var a=new Uint8Array(ut+h.length),_=new Uint8Array(a.length),w=0;w<h.length;w++)a[w+ut]=h[w];return a.length<32||Kt(_,a,a.length,y,b)!==0?null:_.subarray(ct)},p.secretbox.keyLength=gt,p.secretbox.nonceLength=St,p.secretbox.overheadLength=ut,p.scalarMult=function(h,y){if(Le(h,y),h.length!==Et)throw new Error("bad n size");if(y.length!==dt)throw new Error("bad p size");var b=new Uint8Array(dt);return wt(b,h,y),b},p.scalarMult.base=function(h){if(Le(h),h.length!==Et)throw new Error("bad n size");var y=new Uint8Array(dt);return kt(y,h),y},p.scalarMult.scalarLength=Et,p.scalarMult.groupElementLength=dt,p.box=function(h,y,b,a){var _=p.box.before(b,a);return p.secretbox(h,y,_)},p.box.before=function(h,y){Le(h,y),_r(h,y);var b=new Uint8Array(en);return xt(b,h,y),b},p.box.after=p.secretbox,p.box.open=function(h,y,b,a){var _=p.box.before(b,a);return p.secretbox.open(h,y,_)},p.box.open.after=p.secretbox.open,p.box.keyPair=function(){var h=new Uint8Array(at),y=new Uint8Array(st);return Ln(h,y),{publicKey:h,secretKey:y}},p.box.keyPair.fromSecretKey=function(h){if(Le(h),h.length!==st)throw new Error("bad secret key size");var y=new Uint8Array(at);return kt(y,h),{publicKey:y,secretKey:new Uint8Array(h)}},p.box.publicKeyLength=at,p.box.secretKeyLength=st,p.box.sharedKeyLength=en,p.box.nonceLength=Cn,p.box.overheadLength=p.secretbox.overheadLength,p.sign=function(h,y){if(Le(h,y),y.length!==ft)throw new Error("bad secret key size");var b=new Uint8Array(Ke+h.length);return An(b,h,h.length,y),b},p.sign.open=function(h,y){if(Le(h,y),y.length!==et)throw new Error("bad public key size");var b=new Uint8Array(h.length),a=Zt(b,h,h.length,y);if(a<0)return null;for(var _=new Uint8Array(a),w=0;w<_.length;w++)_[w]=b[w];return _},p.sign.detached=function(h,y){for(var b=p.sign(h,y),a=new Uint8Array(Ke),_=0;_<a.length;_++)a[_]=b[_];return a},p.sign.detached.verify=function(h,y,b){if(Le(h,y,b),y.length!==Ke)throw new Error("bad signature size");if(b.length!==et)throw new Error("bad public key size");var a=new Uint8Array(Ke+h.length),_=new Uint8Array(Ke+h.length),w;for(w=0;w<Ke;w++)a[w]=y[w];for(w=0;w<h.length;w++)a[w+Ke]=h[w];return Zt(_,a,a.length,b)>=0},p.sign.keyPair=function(){var h=new Uint8Array(et),y=new Uint8Array(ft);return Gt(h,y),{publicKey:h,secretKey:y}},p.sign.keyPair.fromSecretKey=function(h){if(Le(h),h.length!==ft)throw new Error("bad secret key size");for(var y=new Uint8Array(et),b=0;b<y.length;b++)y[b]=h[32+b];return{publicKey:y,secretKey:new Uint8Array(h)}},p.sign.keyPair.fromSeed=function(h){if(Le(h),h.length!==tn)throw new Error("bad seed size");for(var y=new Uint8Array(et),b=new Uint8Array(ft),a=0;a<32;a++)b[a]=h[a];return Gt(y,b,!0),{publicKey:y,secretKey:b}},p.sign.publicKeyLength=et,p.sign.secretKeyLength=ft,p.sign.seedLength=tn,p.sign.signatureLength=Ke,p.hash=function(h){Le(h);var y=new Uint8Array(nn);return ge(y,h,h.length),y},p.hash.hashLength=nn,p.verify=function(h,y){return Le(h,y),h.length===0||y.length===0||h.length!==y.length?!1:re(h,0,y,0,h.length)===0},p.setPRNG=function(h){o=h},function(){var h=typeof self<"u"?self.crypto||self.msCrypto:null;if(h&&h.getRandomValues){var y=65536;p.setPRNG(function(b,a){var _,w=new Uint8Array(a);for(_=0;_<a;_+=y)h.getRandomValues(w.subarray(_,_+Math.min(a-_,y)));for(_=0;_<a;_++)b[_]=w[_];Mn(w)})}else typeof pt<"u"&&(h=Un(),h&&h.randomBytes&&p.setPRNG(function(b,a){var _,w=h.randomBytes(a);for(_=0;_<a;_++)b[_]=w[_];Mn(w)}))}()})(typeof Tt<"u"&&Tt.exports?Tt.exports:self.nacl=self.nacl||{})});var ri=xe((mo,ii)=>{"use strict";ii.exports=Lr;function Lr(p,i){for(var o=new Array(arguments.length-1),e=0,t=2,n=!0;t<arguments.length;)o[e++]=arguments[t++];return new Promise(function(f,d){o[e]=function(k){if(n)if(n=!1,k)d(k);else{for(var q=new Array(arguments.length-1),K=0;K<q.length;)q[K++]=arguments[K];f.apply(null,q)}};try{p.apply(i||null,o)}catch(c){n&&(n=!1,d(c))}})}});var li=xe(fi=>{"use strict";var qt=fi;qt.length=function(i){var o=i.length;if(!o)return 0;for(var e=0;--o%4>1&&i.charAt(o)==="=";)++e;return Math.ceil(i.length*3)/4-e};var lt=new Array(64),ui=new Array(123);for(Ie=0;Ie<64;)ui[lt[Ie]=Ie<26?Ie+65:Ie<52?Ie+71:Ie<62?Ie-4:Ie-59|43]=Ie++;var Ie;qt.encode=function(i,o,e){for(var t=null,n=[],r=0,f=0,d;o<e;){var c=i[o++];switch(f){case 0:n[r++]=lt[c>>2],d=(c&3)<<4,f=1;break;case 1:n[r++]=lt[d|c>>4],d=(c&15)<<2,f=2;break;case 2:n[r++]=lt[d|c>>6],n[r++]=lt[c&63],f=0;break}r>8191&&((t||(t=[])).push(String.fromCharCode.apply(String,n)),r=0)}return f&&(n[r++]=lt[d],n[r++]=61,f===1&&(n[r++]=61)),t?(r&&t.push(String.fromCharCode.apply(String,n.slice(0,r))),t.join("")):String.fromCharCode.apply(String,n.slice(0,r))};var oi="invalid encoding";qt.decode=function(i,o,e){for(var t=e,n=0,r,f=0;f<i.length;){var d=i.charCodeAt(f++);if(d===61&&n>1)break;if((d=ui[d])===void 0)throw Error(oi);switch(n){case 0:r=d,n=1;break;case 1:o[e++]=r<<2|(d&48)>>4,r=d,n=2;break;case 2:o[e++]=(r&15)<<4|(d&60)>>2,r=d,n=3;break;case 3:o[e++]=(r&3)<<6|d,n=0;break}}if(n===1)throw Error(oi);return e-t};qt.test=function(i){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(i)}});var di=xe((So,ci)=>{"use strict";ci.exports=Ft;function Ft(){this._listeners={}}Ft.prototype.on=function(i,o,e){return(this._listeners[i]||(this._listeners[i]=[])).push({fn:o,ctx:e||this}),this};Ft.prototype.off=function(i,o){if(i===void 0)this._listeners={};else if(o===void 0)this._listeners[i]=[];else for(var e=this._listeners[i],t=0;t<e.length;)e[t].fn===o?e.splice(t,1):++t;return this};Ft.prototype.emit=function(i){var o=this._listeners[i];if(o){for(var e=[],t=1;t<arguments.length;)e.push(arguments[t++]);for(t=0;t<o.length;)o[t].fn.apply(o[t++].ctx,e)}return this}});var _i=xe((Eo,yi)=>{"use strict";yi.exports=ai(ai);function ai(p){return typeof Float32Array<"u"?function(){var i=new Float32Array([-0]),o=new Uint8Array(i.buffer),e=o[3]===128;function t(d,c,k){i[0]=d,c[k]=o[0],c[k+1]=o[1],c[k+2]=o[2],c[k+3]=o[3]}function n(d,c,k){i[0]=d,c[k]=o[3],c[k+1]=o[2],c[k+2]=o[1],c[k+3]=o[0]}p.writeFloatLE=e?t:n,p.writeFloatBE=e?n:t;function r(d,c){return o[0]=d[c],o[1]=d[c+1],o[2]=d[c+2],o[3]=d[c+3],i[0]}function f(d,c){return o[3]=d[c],o[2]=d[c+1],o[1]=d[c+2],o[0]=d[c+3],i[0]}p.readFloatLE=e?r:f,p.readFloatBE=e?f:r}():function(){function i(e,t,n,r){var f=t<0?1:0;if(f&&(t=-t),t===0)e(1/t>0?0:2147483648,n,r);else if(isNaN(t))e(2143289344,n,r);else if(t>34028234663852886e22)e((f<<31|2139095040)>>>0,n,r);else if(t<11754943508222875e-54)e((f<<31|Math.round(t/1401298464324817e-60))>>>0,n,r);else{var d=Math.floor(Math.log(t)/Math.LN2),c=Math.round(t*Math.pow(2,-d)*8388608)&8388607;e((f<<31|d+127<<23|c)>>>0,n,r)}}p.writeFloatLE=i.bind(null,si),p.writeFloatBE=i.bind(null,pi);function o(e,t,n){var r=e(t,n),f=(r>>31)*2+1,d=r>>>23&255,c=r&8388607;return d===255?c?NaN:f*(1/0):d===0?f*1401298464324817e-60*c:f*Math.pow(2,d-150)*(c+8388608)}p.readFloatLE=o.bind(null,hi),p.readFloatBE=o.bind(null,bi)}(),typeof Float64Array<"u"?function(){var i=new Float64Array([-0]),o=new Uint8Array(i.buffer),e=o[7]===128;function t(d,c,k){i[0]=d,c[k]=o[0],c[k+1]=o[1],c[k+2]=o[2],c[k+3]=o[3],c[k+4]=o[4],c[k+5]=o[5],c[k+6]=o[6],c[k+7]=o[7]}function n(d,c,k){i[0]=d,c[k]=o[7],c[k+1]=o[6],c[k+2]=o[5],c[k+3]=o[4],c[k+4]=o[3],c[k+5]=o[2],c[k+6]=o[1],c[k+7]=o[0]}p.writeDoubleLE=e?t:n,p.writeDoubleBE=e?n:t;function r(d,c){return o[0]=d[c],o[1]=d[c+1],o[2]=d[c+2],o[3]=d[c+3],o[4]=d[c+4],o[5]=d[c+5],o[6]=d[c+6],o[7]=d[c+7],i[0]}function f(d,c){return o[7]=d[c],o[6]=d[c+1],o[5]=d[c+2],o[4]=d[c+3],o[3]=d[c+4],o[2]=d[c+5],o[1]=d[c+6],o[0]=d[c+7],i[0]}p.readDoubleLE=e?r:f,p.readDoubleBE=e?f:r}():function(){function i(e,t,n,r,f,d){var c=r<0?1:0;if(c&&(r=-r),r===0)e(0,f,d+t),e(1/r>0?0:2147483648,f,d+n);else if(isNaN(r))e(0,f,d+t),e(2146959360,f,d+n);else if(r>17976931348623157e292)e(0,f,d+t),e((c<<31|2146435072)>>>0,f,d+n);else{var k;if(r<22250738585072014e-324)k=r/5e-324,e(k>>>0,f,d+t),e((c<<31|k/4294967296)>>>0,f,d+n);else{var q=Math.floor(Math.log(r)/Math.LN2);q===1024&&(q=1023),k=r*Math.pow(2,-q),e(k*4503599627370496>>>0,f,d+t),e((c<<31|q+1023<<20|k*1048576&1048575)>>>0,f,d+n)}}}p.writeDoubleLE=i.bind(null,si,0,4),p.writeDoubleBE=i.bind(null,pi,4,0);function o(e,t,n,r,f){var d=e(r,f+t),c=e(r,f+n),k=(c>>31)*2+1,q=c>>>20&2047,K=4294967296*(c&1048575)+d;return q===2047?K?NaN:k*(1/0):q===0?k*5e-324*K:k*Math.pow(2,q-1075)*(K+4503599627370496)}p.readDoubleLE=o.bind(null,hi,0,4),p.readDoubleBE=o.bind(null,bi,4,0)}(),p}function si(p,i,o){i[o]=p&255,i[o+1]=p>>>8&255,i[o+2]=p>>>16&255,i[o+3]=p>>>24}function pi(p,i,o){i[o]=p>>>24,i[o+1]=p>>>16&255,i[o+2]=p>>>8&255,i[o+3]=p&255}function hi(p,i){return(p[i]|p[i+1]<<8|p[i+2]<<16|p[i+3]<<24)>>>0}function bi(p,i){return(p[i]<<24|p[i+1]<<16|p[i+2]<<8|p[i+3])>>>0}});var wi=xe((To,Oi)=>{"use strict";Oi.exports=qr;function qr(p){try{if(typeof pt!="function")return null;var i=pt(p);return i&&(i.length||Object.keys(i).length)?i:null}catch{return null}}});var xi=xe(ki=>{"use strict";var an=ki,dn="\uFFFD";an.length=function(i){for(var o=0,e=0,t=0;t<i.length;++t)e=i.charCodeAt(t),e<128?o+=1:e<2048?o+=2:(e&64512)===55296&&(i.charCodeAt(t+1)&64512)===56320?(++t,o+=4):o+=3;return o};an.read=function(i,o,e){if(e-o<1)return"";for(var t="",n=o;n<e;){var r=i[n++];if(r<=127)t+=String.fromCharCode(r);else if(r>=192&&r<224){var f=(r&31)<<6|i[n++]&63;t+=f>=128?String.fromCharCode(f):dn}else if(r>=224&&r<240){var d=(r&15)<<12|(i[n++]&63)<<6|i[n++]&63;t+=d>=2048?String.fromCharCode(d):dn}else if(r>=240){var c=(r&7)<<18|(i[n++]&63)<<12|(i[n++]&63)<<6|i[n++]&63;c<65536||c>1114111?t+=dn:(c-=65536,t+=String.fromCharCode(55296+(c>>10)),t+=String.fromCharCode(56320+(c&1023)))}}return t};an.write=function(i,o,e){for(var t=e,n,r,f=0;f<i.length;++f)n=i.charCodeAt(f),n<128?o[e++]=n:n<2048?(o[e++]=n>>6|192,o[e++]=n&63|128):(n&64512)===55296&&((r=i.charCodeAt(f+1))&64512)===56320?(n=65536+((n&1023)<<10)+(r&1023),++f,o[e++]=n>>18|240,o[e++]=n>>12&63|128,o[e++]=n>>6&63|128,o[e++]=n&63|128):(o[e++]=n>>12|224,o[e++]=n>>6&63|128,o[e++]=n&63|128);return e-t}});var mi=xe((Lo,vi)=>{"use strict";vi.exports=Fr;function Fr(p,i,o){var e=o||8192,t=e>>>1,n=null,r=e;return function(d){if(d<1||d>t)return p(d);r+d>e&&(n=p(e),r=0);var c=i.call(n,r,r+=d);return r&7&&(r=(r|7)+1),c}}});var Si=xe((qo,Pi)=>{"use strict";Pi.exports=me;var bt=Xe();function me(p,i){this.lo=p>>>0,this.hi=i>>>0}var tt=me.zero=new me(0,0);tt.toNumber=function(){return 0};tt.zzEncode=tt.zzDecode=function(){return this};tt.length=function(){return 1};var Nr=me.zeroHash="\0\0\0\0\0\0\0\0";me.fromNumber=function(i){if(i===0)return tt;var o=i<0;o&&(i=-i);var e=i>>>0,t=(i-e)/4294967296>>>0;return o&&(t=~t>>>0,e=~e>>>0,++e>4294967295&&(e=0,++t>4294967295&&(t=0))),new me(e,t)};me.from=function(i){if(typeof i=="number")return me.fromNumber(i);if(bt.isString(i))if(bt.Long)i=bt.Long.fromString(i);else return me.fromNumber(parseInt(i,10));return i.low||i.high?new me(i.low>>>0,i.high>>>0):tt};me.prototype.toNumber=function(i){if(!i&&this.hi>>>31){var o=~this.lo+1>>>0,e=~this.hi>>>0;return o||(e=e+1>>>0),-(o+e*4294967296)}return this.lo+this.hi*4294967296};me.prototype.toLong=function(i){return bt.Long?new bt.Long(this.lo|0,this.hi|0,!!i):{low:this.lo|0,high:this.hi|0,unsigned:!!i}};var Ge=String.prototype.charCodeAt;me.fromHash=function(i){return i===Nr?tt:new me((Ge.call(i,0)|Ge.call(i,1)<<8|Ge.call(i,2)<<16|Ge.call(i,3)<<24)>>>0,(Ge.call(i,4)|Ge.call(i,5)<<8|Ge.call(i,6)<<16|Ge.call(i,7)<<24)>>>0)};me.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};me.prototype.zzEncode=function(){var i=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^i)>>>0,this.lo=(this.lo<<1^i)>>>0,this};me.prototype.zzDecode=function(){var i=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^i)>>>0,this.hi=(this.hi>>>1^i)>>>0,this};me.prototype.length=function(){var i=this.lo,o=(this.lo>>>28|this.hi<<4)>>>0,e=this.hi>>>24;return e===0?o===0?i<16384?i<128?1:2:i<2097152?3:4:o<16384?o<128?5:6:o<2097152?7:8:e<128?9:10}});var Xe=xe(sn=>{"use strict";var H=sn;H.asPromise=ri();H.base64=li();H.EventEmitter=di();H.float=_i();H.inquire=wi();H.utf8=xi();H.pool=mi();H.LongBits=Si();H.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);H.global=H.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||sn;H.emptyArray=Object.freeze?Object.freeze([]):[];H.emptyObject=Object.freeze?Object.freeze({}):{};H.isInteger=Number.isInteger||function(i){return typeof i=="number"&&isFinite(i)&&Math.floor(i)===i};H.isString=function(i){return typeof i=="string"||i instanceof String};H.isObject=function(i){return i&&typeof i=="object"};H.isset=H.isSet=function(i,o){var e=i[o];return e!=null&&i.hasOwnProperty(o)?typeof e!="object"||(Array.isArray(e)?e.length:Object.keys(e).length)>0:!1};H.Buffer=function(){try{var p=H.inquire("buffer").Buffer;return p.prototype.utf8Write?p:null}catch{return null}}();H._Buffer_from=null;H._Buffer_allocUnsafe=null;H.newBuffer=function(i){return typeof i=="number"?H.Buffer?H._Buffer_allocUnsafe(i):new H.Array(i):H.Buffer?H._Buffer_from(i):typeof Uint8Array>"u"?i:new Uint8Array(i)};H.Array=typeof Uint8Array<"u"?Uint8Array:Array;H.Long=H.global.dcodeIO&&H.global.dcodeIO.Long||H.global.Long||H.inquire("long");H.key2Re=/^true|false|0|1$/;H.key32Re=/^-?(?:0|[1-9][0-9]*)$/;H.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;H.longToHash=function(i){return i?H.LongBits.from(i).toHash():H.LongBits.zeroHash};H.longFromHash=function(i,o){var e=H.LongBits.fromHash(i);return H.Long?H.Long.fromBits(e.lo,e.hi,o):e.toNumber(!!o)};function Ei(p,i,o){for(var e=Object.keys(i),t=0;t<e.length;++t)(p[e[t]]===void 0||!o)&&e[t]!=="__proto__"&&(p[e[t]]=i[e[t]]);return p}H.merge=Ei;H.recursionLimit=100;H.makeProp=function(i,o){Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})};H.lcFirst=function(i){return i.charAt(0).toLowerCase()+i.substring(1)};function Ti(p){function i(o,e){if(!(this instanceof i))return new i(o,e);Object.defineProperty(this,"message",{get:function(){return o}}),Error.captureStackTrace?Error.captureStackTrace(this,i):Object.defineProperty(this,"stack",{value:new Error().stack||""}),e&&Ei(this,e)}return i.prototype=Object.create(Error.prototype,{constructor:{value:i,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return p},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),i}H.newError=Ti;H.ProtocolError=Ti("ProtocolError");H.oneOfGetter=function(i){for(var o={},e=0;e<i.length;++e)o[i[e]]=1;return function(){for(var t=Object.keys(this),n=t.length-1;n>-1;--n)if(o[t[n]]===1&&this[t[n]]!==void 0&&this[t[n]]!==null)return t[n]}};H.oneOfSetter=function(i){return function(o){for(var e=0;e<i.length;++e)i[e]!==o&&delete this[i[e]]}};H.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};H._configure=function(){var p=H.Buffer;if(!p){H._Buffer_from=H._Buffer_allocUnsafe=null;return}H._Buffer_from=p.from!==Uint8Array.from&&p.from||function(o,e){return new p(o,e)},H._Buffer_allocUnsafe=p.allocUnsafe||function(o){return new p(o)}}});var wn=xe((No,qi)=>{"use strict";qi.exports=pe;var je=Xe(),pn,Nt=je.LongBits,Di=je.base64,Ri=je.utf8;function yt(p,i,o){this.fn=p,this.len=i,this.next=void 0,this.val=o}function bn(){}function jr(p){this.head=p.head,this.tail=p.tail,this.len=p.len,this.next=p.states}function pe(){this.len=0,this.head=new yt(bn,0,0),this.tail=this.head,this.states=null}var Li=function(){return je.Buffer?function(){return(pe.create=function(){return new pn})()}:function(){return new pe}};pe.create=Li();pe.alloc=function(i){return new je.Array(i)};je.Array!==Array&&(pe.alloc=je.pool(pe.alloc,je.Array.prototype.subarray));pe.prototype._push=function(i,o,e){return this.tail=this.tail.next=new yt(i,o,e),this.len+=o,this};function yn(p,i,o){i[o]=p&255}function Ar(p,i,o){for(;p>127;)i[o++]=p&127|128,p>>>=7;i[o]=p}function _n(p,i){this.len=p,this.next=void 0,this.val=i}_n.prototype=Object.create(yt.prototype);_n.prototype.fn=Ar;pe.prototype.uint32=function(i){return this.len+=(this.tail=this.tail.next=new _n((i=i>>>0)<128?1:i<16384?2:i<2097152?3:i<268435456?4:5,i)).len,this};pe.prototype.int32=function(i){return i<0?this._push(On,10,Nt.fromNumber(i)):this.uint32(i)};pe.prototype.sint32=function(i){return this.uint32((i<<1^i>>31)>>>0)};function On(p,i,o){for(;p.hi;)i[o++]=p.lo&127|128,p.lo=(p.lo>>>7|p.hi<<25)>>>0,p.hi>>>=7;for(;p.lo>127;)i[o++]=p.lo&127|128,p.lo=p.lo>>>7;i[o++]=p.lo}pe.prototype.uint64=function(i){var o=Nt.from(i);return this._push(On,o.length(),o)};pe.prototype.int64=pe.prototype.uint64;pe.prototype.sint64=function(i){var o=Nt.from(i).zzEncode();return this._push(On,o.length(),o)};pe.prototype.bool=function(i){return this._push(yn,1,i?1:0)};function hn(p,i,o){i[o]=p&255,i[o+1]=p>>>8&255,i[o+2]=p>>>16&255,i[o+3]=p>>>24}pe.prototype.fixed32=function(i){return this._push(hn,4,i>>>0)};pe.prototype.sfixed32=pe.prototype.fixed32;pe.prototype.fixed64=function(i){var o=Nt.from(i);return this._push(hn,4,o.lo)._push(hn,4,o.hi)};pe.prototype.sfixed64=pe.prototype.fixed64;pe.prototype.float=function(i){return this._push(je.float.writeFloatLE,4,i)};pe.prototype.double=function(i){return this._push(je.float.writeDoubleLE,8,i)};var Cr=je.Array.prototype.set?function(i,o,e){o.set(i,e)}:function(i,o,e){for(var t=0;t<i.length;++t)o[e+t]=i[t]};pe.prototype.bytes=function(i){var o=i.length>>>0;if(!o)return this._push(yn,1,0);if(je.isString(i)){var e=pe.alloc(o=Di.length(i));Di.decode(i,e,0),i=e}return this.uint32(o)._push(Cr,o,i)};pe.prototype.string=function(i){var o=Ri.length(i);return o?this.uint32(o)._push(Ri.write,o,i):this._push(yn,1,0)};pe.prototype.fork=function(){return this.states=new jr(this),this.head=this.tail=new yt(bn,0,0),this.len=0,this};pe.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new yt(bn,0,0),this.len=0),this};pe.prototype.ldelim=function(){var i=this.head,o=this.tail,e=this.len;return this.reset().uint32(e),e&&(this.tail.next=i.next,this.tail=o,this.len+=e),this};pe.prototype.finish=function(){for(var i=this.head.next,o=this.constructor.alloc(this.len),e=0;i;)i.fn(i.val,o,e),e+=i.len,i=i.next;return o};pe._configure=function(p){pn=p,pe.create=Li(),pn._configure()}});var ji=xe((jo,Ni)=>{"use strict";Ni.exports=He;var Fi=wn();(He.prototype=Object.create(Fi.prototype)).constructor=He;var Qe=Xe();function He(){Fi.call(this)}He._configure=function(){He.alloc=Qe._Buffer_allocUnsafe,He.writeBytesBuffer=Qe.Buffer&&Qe.Buffer.prototype instanceof Uint8Array&&Qe.Buffer.prototype.set.name==="set"?function(i,o,e){o.set(i,e)}:function(i,o,e){if(i.copy)i.copy(o,e,0,i.length);else for(var t=0;t<i.length;)o[e++]=i[t++]}};He.prototype.bytes=function(i){Qe.isString(i)&&(i=Qe._Buffer_from(i,"base64"));var o=i.length>>>0;return this.uint32(o),o&&this._push(He.writeBytesBuffer,o,i),this};function Br(p,i,o){p.length<40?Qe.utf8.write(p,i,o):i.utf8Write?i.utf8Write(p,o):i.write(p,o)}He.prototype.string=function(i){var o=Qe.Buffer.byteLength(i);return this.uint32(o),o&&this._push(Br,o,i),this};He._configure()});var vn=xe((Ao,Ii)=>{"use strict";Ii.exports=ye;var Ae=Xe(),xn,Bi=Ae.LongBits,Mr=Ae.utf8;function Je(p,i){return RangeError("index out of range: "+p.pos+" + "+(i||1)+" > "+p.len)}function ye(p){this.buf=p,this.pos=0,this.len=p.length}var Ai=typeof Uint8Array<"u"?function(i){if(i instanceof Uint8Array||Array.isArray(i))return new ye(i);throw Error("illegal buffer")}:function(i){if(Array.isArray(i))return new ye(i);throw Error("illegal buffer")},Mi=function(){return Ae.Buffer?function(o){return(ye.create=function(t){return Ae.Buffer.isBuffer(t)?new xn(t):Ai(t)})(o)}:Ai};ye.create=Mi();ye.prototype._slice=Ae.Array.prototype.subarray||Ae.Array.prototype.slice;ye.prototype.uint32=function(){var i=4294967295;return function(){if(i=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(i=(i|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return i;if((this.pos+=5)>this.len)throw this.pos=this.len,Je(this,10);return i}}();ye.prototype.int32=function(){return this.uint32()|0};ye.prototype.sint32=function(){var i=this.uint32();return i>>>1^-(i&1)|0};function kn(){var p=new Bi(0,0),i=0;if(this.len-this.pos>4){for(;i<4;++i)if(p.lo=(p.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return p;if(p.lo=(p.lo|(this.buf[this.pos]&127)<<28)>>>0,p.hi=(p.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return p;i=0}else{for(;i<3;++i){if(this.pos>=this.len)throw Je(this);if(p.lo=(p.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return p}return p.lo=(p.lo|(this.buf[this.pos++]&127)<<i*7)>>>0,p}if(this.len-this.pos>4){for(;i<5;++i)if(p.hi=(p.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return p}else for(;i<5;++i){if(this.pos>=this.len)throw Je(this);if(p.hi=(p.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return p}throw Error("invalid varint encoding")}ye.prototype.bool=function(){return this.uint32()!==0};function jt(p,i){return(p[i-4]|p[i-3]<<8|p[i-2]<<16|p[i-1]<<24)>>>0}ye.prototype.fixed32=function(){if(this.pos+4>this.len)throw Je(this,4);return jt(this.buf,this.pos+=4)};ye.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Je(this,4);return jt(this.buf,this.pos+=4)|0};function Ci(){if(this.pos+8>this.len)throw Je(this,8);return new Bi(jt(this.buf,this.pos+=4),jt(this.buf,this.pos+=4))}ye.prototype.float=function(){if(this.pos+4>this.len)throw Je(this,4);var i=Ae.float.readFloatLE(this.buf,this.pos);return this.pos+=4,i};ye.prototype.double=function(){if(this.pos+8>this.len)throw Je(this,4);var i=Ae.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,i};ye.prototype.bytes=function(){var i=this.uint32(),o=this.pos,e=this.pos+i;if(e>this.len)throw Je(this,i);if(this.pos+=i,Array.isArray(this.buf))return this.buf.slice(o,e);if(o===e){var t=Ae.Buffer;return t?t.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,o,e)};ye.prototype.string=function(){var i=this.bytes();return Mr.read(i,0,i.length)};ye.prototype.skip=function(i){if(typeof i=="number"){if(this.pos+i>this.len)throw Je(this,i);this.pos+=i}else do if(this.pos>=this.len)throw Je(this);while(this.buf[this.pos++]&128);return this};ye.recursionLimit=Ae.recursionLimit;ye.prototype.skipType=function(p,i){if(i===void 0&&(i=0),i>ye.recursionLimit)throw Error("maximum nesting depth exceeded");switch(p){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(p=this.uint32()&7)!==4;)this.skipType(p,i+1);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+p+" at offset "+this.pos)}return this};ye._configure=function(p){xn=p,ye.create=Mi(),xn._configure();var i=Ae.Long?"toLong":"toNumber";Ae.merge(ye.prototype,{int64:function(){return kn.call(this)[i](!1)},uint64:function(){return kn.call(this)[i](!0)},sint64:function(){return kn.call(this).zzDecode()[i](!1)},fixed64:function(){return Ci.call(this)[i](!0)},sfixed64:function(){return Ci.call(this)[i](!1)}})}});var zi=xe((Co,Hi)=>{"use strict";Hi.exports=nt;var Ui=vn();(nt.prototype=Object.create(Ui.prototype)).constructor=nt;var Ji=Xe();function nt(p){Ui.call(this,p)}nt._configure=function(){Ji.Buffer&&(nt.prototype._slice=Ji.Buffer.prototype.slice)};nt.prototype.string=function(){var i=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+i,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+i,this.len))};nt._configure()});var $i=xe((Bo,Ki)=>{"use strict";Ki.exports=_t;var mn=Xe();(_t.prototype=Object.create(mn.EventEmitter.prototype)).constructor=_t;function _t(p,i,o){if(typeof p!="function")throw TypeError("rpcImpl must be a function");mn.EventEmitter.call(this),this.rpcImpl=p,this.requestDelimited=!!i,this.responseDelimited=!!o}_t.prototype.rpcCall=function p(i,o,e,t,n){if(!t)throw TypeError("request must be specified");var r=this;if(!n)return mn.asPromise(p,r,i,o,e,t);if(!r.rpcImpl){setTimeout(function(){n(Error("already ended"))},0);return}try{return r.rpcImpl(i,o[r.requestDelimited?"encodeDelimited":"encode"](t).finish(),function(d,c){if(d)return r.emit("error",d,i),n(d);if(c===null){r.end(!0);return}if(!(c instanceof e))try{c=e[r.responseDelimited?"decodeDelimited":"decode"](c)}catch(k){return r.emit("error",k,i),n(k)}return r.emit("data",c,i),n(null,c)})}catch(f){r.emit("error",f,i),setTimeout(function(){n(f)},0);return}};_t.prototype.end=function(i){return this.rpcImpl&&(i||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var Wi=xe(Vi=>{"use strict";var Ir=Vi;Ir.Service=$i()});var Gi=xe((Io,Yi)=>{"use strict";Yi.exports={}});var Zi=xe(Qi=>{"use strict";var Re=Qi;Re.build="minimal";Re.Writer=wn();Re.BufferWriter=ji();Re.Reader=vn();Re.BufferReader=zi();Re.util=Xe();Re.rpc=Wi();Re.roots=Gi();Re.configure=Xi;function Xi(){Re.util._configure(),Re.Writer._configure(Re.BufferWriter),Re.Reader._configure(Re.BufferReader)}Xi()});var er=xe((Uo,gi)=>{"use strict";gi.exports=Zi()});var qe=Jn(Hn(),1);function Pr(p){return p instanceof Uint8Array||ArrayBuffer.isView(p)&&p.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in p&&p.BYTES_PER_ELEMENT===1}function rn(p,i,o=""){let e=Pr(p),t=p?.length,n=i!==void 0;if(!e||n&&t!==i){let r=o&&`"${o}" `,f=n?` of length ${i}`:"",d=e?`length=${t}`:`type=${typeof p}`,c=r+"expected Uint8Array"+f+", got "+d;throw e?new RangeError(c):new TypeError(c)}return p}function on(p,i=!0){if(p.destroyed)throw new Error("Hash instance has been destroyed");if(i&&p.finished)throw new Error("Hash#digest() has already been called")}function zn(p,i){rn(p,void 0,"digestInto() output");let o=i.outputLen;if(p.length<o)throw new RangeError('"digestInto() output" expected to be of length >='+o)}function ht(...p){for(let i=0;i<p.length;i++)p[i].fill(0)}function Dt(p){return new DataView(p.buffer,p.byteOffset,p.byteLength)}function Me(p,i){return p<<32-i|p>>>i}function Kn(p,i={}){let o=(t,n)=>p(n).update(t).digest(),e=p(void 0);return o.outputLen=e.outputLen,o.blockLen=e.blockLen,o.canXOF=e.canXOF,o.create=t=>p(t),Object.assign(o,i),Object.freeze(o)}var $n=p=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,p])});function Vn(p,i,o){return p&i^~p&o}function Wn(p,i,o){return p&i^p&o^i&o}var Rt=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(i,o,e,t){this.blockLen=i,this.outputLen=o,this.padOffset=e,this.isLE=t,this.buffer=new Uint8Array(i),this.view=Dt(this.buffer)}update(i){on(this),rn(i);let{view:o,buffer:e,blockLen:t}=this,n=i.length;for(let r=0;r<n;){let f=Math.min(t-this.pos,n-r);if(f===t){let d=Dt(i);for(;t<=n-r;r+=t)this.process(d,r);continue}e.set(i.subarray(r,r+f),this.pos),this.pos+=f,r+=f,this.pos===t&&(this.process(o,0),this.pos=0)}return this.length+=i.length,this.roundClean(),this}digestInto(i){on(this),zn(i,this),this.finished=!0;let{buffer:o,view:e,blockLen:t,isLE:n}=this,{pos:r}=this;o[r++]=128,ht(this.buffer.subarray(r)),this.padOffset>t-r&&(this.process(e,0),r=0);for(let q=r;q<t;q++)o[q]=0;e.setBigUint64(t-8,BigInt(this.length*8),n),this.process(e,0);let f=Dt(i),d=this.outputLen;if(d%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let c=d/4,k=this.get();if(c>k.length)throw new Error("_sha2: outputLen bigger than state");for(let q=0;q<c;q++)f.setUint32(4*q,k[q],n)}digest(){let{buffer:i,outputLen:o}=this;this.digestInto(i);let e=i.slice(0,o);return this.destroy(),e}_cloneInto(i){i||=new this.constructor,i.set(...this.get());let{blockLen:o,buffer:e,length:t,finished:n,destroyed:r,pos:f}=this;return i.destroyed=r,i.finished=n,i.length=t,i.pos=f,t%o&&i.buffer.set(e),i}clone(){return this._cloneInto()}},$e=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Sr=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ye=new Uint32Array(64),un=class extends Rt{constructor(i){super(64,i,8,!1)}get(){let{A:i,B:o,C:e,D:t,E:n,F:r,G:f,H:d}=this;return[i,o,e,t,n,r,f,d]}set(i,o,e,t,n,r,f,d){this.A=i|0,this.B=o|0,this.C=e|0,this.D=t|0,this.E=n|0,this.F=r|0,this.G=f|0,this.H=d|0}process(i,o){for(let q=0;q<16;q++,o+=4)Ye[q]=i.getUint32(o,!1);for(let q=16;q<64;q++){let K=Ye[q-15],W=Ye[q-2],re=Me(K,7)^Me(K,18)^K>>>3,V=Me(W,17)^Me(W,19)^W>>>10;Ye[q]=V+Ye[q-7]+re+Ye[q-16]|0}let{A:e,B:t,C:n,D:r,E:f,F:d,G:c,H:k}=this;for(let q=0;q<64;q++){let K=Me(f,6)^Me(f,11)^Me(f,25),W=k+K+Vn(f,d,c)+Sr[q]+Ye[q]|0,V=(Me(e,2)^Me(e,13)^Me(e,22))+Wn(e,t,n)|0;k=c,c=d,d=f,f=r+W|0,r=n,n=t,t=e,e=W+V|0}e=e+this.A|0,t=t+this.B|0,n=n+this.C|0,r=r+this.D|0,f=f+this.E|0,d=d+this.F|0,c=c+this.G|0,k=k+this.H|0,this.set(e,t,n,r,f,d,c,k)}roundClean(){ht(Ye)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),ht(this.buffer)}},fn=class extends un{A=$e[0]|0;B=$e[1]|0;C=$e[2]|0;D=$e[3]|0;E=$e[4]|0;F=$e[5]|0;G=$e[6]|0;H=$e[7]|0;constructor(){super(32)}};var Yn=Kn(()=>new fn,$n(1));var Gn=Promise.resolve(),Er=qe.default.sign.publicKeyLength,wo=qe.default.box.publicKeyLength,ko=qe.default.box.secretKeyLength,Tr=qe.default.box.nonceLength,Dr=qe.default.secretbox.keyLength,Rr=qe.default.secretbox.nonceLength;function Lt(p,i){if(i.length!==Er)throw new Error(`signOpen: bad pk length ${i.length}`);let o=qe.default.sign.open(p,i);if(!o)throw new Error("signOpen: signature verification failed");return o}function Xn(){let p=qe.default.box.keyPair();return{publicKey:p.publicKey,secretKey:p.secretKey}}function Qn(){return qe.default.randomBytes(Dr)}function Zn(p,i,o){let e=new Uint8Array(Tr);return qe.default.box(p,e,i,o)}function gn(p,i,o){return qe.default.secretbox(p,ti(i),o)}function ei(p,i,o){let e=qe.default.secretbox.open(p,ti(i),o);if(!e)throw new Error("secretboxOpen: authentication failed");return e}function ti(p){let i=new Uint8Array(Rr);return new DataView(i.buffer).setBigUint64(0,p,!0),i}function ln(p){return Yn(p)}function cn(p,i){let o=new Uint8Array(p.length+i.length);return o.set(p,0),o.set(i,p.length),o}function ni(p){let i=atob(p),o=new Uint8Array(i.length);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return o}var P=Jn(er(),1),s=P.Reader,S=P.Writer,l=P.util,u=P.roots.default||(P.roots.default={}),E=u.hbb=(()=>{let p={};return p.RegisterPeer=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.serial=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.serial!=null&&Object.hasOwnProperty.call(e,"serial")&&t.uint32(16).int32(e.serial),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RegisterPeer;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.serial=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.serial!=null&&e.hasOwnProperty("serial")&&!l.isInteger(e.serial)?"serial: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.RegisterPeer)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RegisterPeer;return e.id!=null&&(n.id=String(e.id)),e.serial!=null&&(n.serial=e.serial|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",n.serial=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.serial!=null&&e.hasOwnProperty("serial")&&(n.serial=e.serial),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RegisterPeer"},i}(),p.ConnType=function(){let i={},o=Object.create(i);return o[i[0]="DEFAULT_CONN"]=0,o[i[1]="FILE_TRANSFER"]=1,o[i[2]="PORT_FORWARD"]=2,o[i[3]="RDP"]=3,o[i[4]="VIEW_CAMERA"]=4,o}(),p.RegisterPeerResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.request_pk=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.request_pk!=null&&Object.hasOwnProperty.call(e,"request_pk")&&t.uint32(16).bool(e.request_pk),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RegisterPeerResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.request_pk=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.request_pk!=null&&e.hasOwnProperty("request_pk")&&typeof e.request_pk!="boolean"?"request_pk: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.RegisterPeerResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RegisterPeerResponse;return e.request_pk!=null&&(n.request_pk=!!e.request_pk),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.request_pk=!1),e.request_pk!=null&&e.hasOwnProperty("request_pk")&&(n.request_pk=e.request_pk),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RegisterPeerResponse"},i}(),p.PunchHoleRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.nat_type=0,i.prototype.licence_key="",i.prototype.conn_type=0,i.prototype.token="",i.prototype.version="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.nat_type!=null&&Object.hasOwnProperty.call(e,"nat_type")&&t.uint32(16).int32(e.nat_type),e.licence_key!=null&&Object.hasOwnProperty.call(e,"licence_key")&&t.uint32(26).string(e.licence_key),e.conn_type!=null&&Object.hasOwnProperty.call(e,"conn_type")&&t.uint32(32).int32(e.conn_type),e.token!=null&&Object.hasOwnProperty.call(e,"token")&&t.uint32(42).string(e.token),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&t.uint32(50).string(e.version),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PunchHoleRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.nat_type=e.int32();break}case 3:{d.licence_key=e.string();break}case 4:{d.conn_type=e.int32();break}case 5:{d.token=e.string();break}case 6:{d.version=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id))return"id: string expected";if(e.nat_type!=null&&e.hasOwnProperty("nat_type"))switch(e.nat_type){default:return"nat_type: enum value expected";case 0:case 1:case 2:break}if(e.licence_key!=null&&e.hasOwnProperty("licence_key")&&!l.isString(e.licence_key))return"licence_key: string expected";if(e.conn_type!=null&&e.hasOwnProperty("conn_type"))switch(e.conn_type){default:return"conn_type: enum value expected";case 0:case 1:case 2:case 3:case 4:break}return e.token!=null&&e.hasOwnProperty("token")&&!l.isString(e.token)?"token: string expected":e.version!=null&&e.hasOwnProperty("version")&&!l.isString(e.version)?"version: string expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.PunchHoleRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PunchHoleRequest;switch(e.id!=null&&(n.id=String(e.id)),e.nat_type){default:if(typeof e.nat_type=="number"){n.nat_type=e.nat_type;break}break;case"UNKNOWN_NAT":case 0:n.nat_type=0;break;case"ASYMMETRIC":case 1:n.nat_type=1;break;case"SYMMETRIC":case 2:n.nat_type=2;break}switch(e.licence_key!=null&&(n.licence_key=String(e.licence_key)),e.conn_type){default:if(typeof e.conn_type=="number"){n.conn_type=e.conn_type;break}break;case"DEFAULT_CONN":case 0:n.conn_type=0;break;case"FILE_TRANSFER":case 1:n.conn_type=1;break;case"PORT_FORWARD":case 2:n.conn_type=2;break;case"RDP":case 3:n.conn_type=3;break;case"VIEW_CAMERA":case 4:n.conn_type=4;break}return e.token!=null&&(n.token=String(e.token)),e.version!=null&&(n.version=String(e.version)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",n.nat_type=t.enums===String?"UNKNOWN_NAT":0,n.licence_key="",n.conn_type=t.enums===String?"DEFAULT_CONN":0,n.token="",n.version=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.nat_type!=null&&e.hasOwnProperty("nat_type")&&(n.nat_type=t.enums===String?u.hbb.NatType[e.nat_type]===void 0?e.nat_type:u.hbb.NatType[e.nat_type]:e.nat_type),e.licence_key!=null&&e.hasOwnProperty("licence_key")&&(n.licence_key=e.licence_key),e.conn_type!=null&&e.hasOwnProperty("conn_type")&&(n.conn_type=t.enums===String?u.hbb.ConnType[e.conn_type]===void 0?e.conn_type:u.hbb.ConnType[e.conn_type]:e.conn_type),e.token!=null&&e.hasOwnProperty("token")&&(n.token=e.token),e.version!=null&&e.hasOwnProperty("version")&&(n.version=e.version),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PunchHoleRequest"},i}(),p.PunchHole=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.socket_addr=l.newBuffer([]),i.prototype.relay_server="",i.prototype.nat_type=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.socket_addr!=null&&Object.hasOwnProperty.call(e,"socket_addr")&&t.uint32(10).bytes(e.socket_addr),e.relay_server!=null&&Object.hasOwnProperty.call(e,"relay_server")&&t.uint32(18).string(e.relay_server),e.nat_type!=null&&Object.hasOwnProperty.call(e,"nat_type")&&t.uint32(24).int32(e.nat_type),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PunchHole;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.socket_addr=e.bytes();break}case 2:{d.relay_server=e.string();break}case 3:{d.nat_type=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&!(e.socket_addr&&typeof e.socket_addr.length=="number"||l.isString(e.socket_addr)))return"socket_addr: buffer expected";if(e.relay_server!=null&&e.hasOwnProperty("relay_server")&&!l.isString(e.relay_server))return"relay_server: string expected";if(e.nat_type!=null&&e.hasOwnProperty("nat_type"))switch(e.nat_type){default:return"nat_type: enum value expected";case 0:case 1:case 2:break}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.PunchHole)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PunchHole;switch(e.socket_addr!=null&&(typeof e.socket_addr=="string"?l.base64.decode(e.socket_addr,n.socket_addr=l.newBuffer(l.base64.length(e.socket_addr)),0):e.socket_addr.length>=0&&(n.socket_addr=e.socket_addr)),e.relay_server!=null&&(n.relay_server=String(e.relay_server)),e.nat_type){default:if(typeof e.nat_type=="number"){n.nat_type=e.nat_type;break}break;case"UNKNOWN_NAT":case 0:n.nat_type=0;break;case"ASYMMETRIC":case 1:n.nat_type=1;break;case"SYMMETRIC":case 2:n.nat_type=2;break}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.socket_addr="":(n.socket_addr=[],t.bytes!==Array&&(n.socket_addr=l.newBuffer(n.socket_addr))),n.relay_server="",n.nat_type=t.enums===String?"UNKNOWN_NAT":0),e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&(n.socket_addr=t.bytes===String?l.base64.encode(e.socket_addr,0,e.socket_addr.length):t.bytes===Array?Array.prototype.slice.call(e.socket_addr):e.socket_addr),e.relay_server!=null&&e.hasOwnProperty("relay_server")&&(n.relay_server=e.relay_server),e.nat_type!=null&&e.hasOwnProperty("nat_type")&&(n.nat_type=t.enums===String?u.hbb.NatType[e.nat_type]===void 0?e.nat_type:u.hbb.NatType[e.nat_type]:e.nat_type),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PunchHole"},i}(),p.TestNatRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.serial=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.serial!=null&&Object.hasOwnProperty.call(e,"serial")&&t.uint32(8).int32(e.serial),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TestNatRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.serial=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.serial!=null&&e.hasOwnProperty("serial")&&!l.isInteger(e.serial)?"serial: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TestNatRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TestNatRequest;return e.serial!=null&&(n.serial=e.serial|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.serial=0),e.serial!=null&&e.hasOwnProperty("serial")&&(n.serial=e.serial),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TestNatRequest"},i}(),p.TestNatResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.port=0,i.prototype.cu=null,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.port!=null&&Object.hasOwnProperty.call(e,"port")&&t.uint32(8).int32(e.port),e.cu!=null&&Object.hasOwnProperty.call(e,"cu")&&u.hbb.ConfigUpdate.encode(e.cu,t.uint32(18).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TestNatResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.port=e.int32();break}case 2:{d.cu=u.hbb.ConfigUpdate.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.port!=null&&e.hasOwnProperty("port")&&!l.isInteger(e.port))return"port: integer expected";if(e.cu!=null&&e.hasOwnProperty("cu")){let n=u.hbb.ConfigUpdate.verify(e.cu,t+1);if(n)return"cu."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.TestNatResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TestNatResponse;if(e.port!=null&&(n.port=e.port|0),e.cu!=null){if(typeof e.cu!="object")throw TypeError(".hbb.TestNatResponse.cu: object expected");n.cu=u.hbb.ConfigUpdate.fromObject(e.cu,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.port=0,n.cu=null),e.port!=null&&e.hasOwnProperty("port")&&(n.port=e.port),e.cu!=null&&e.hasOwnProperty("cu")&&(n.cu=u.hbb.ConfigUpdate.toObject(e.cu,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TestNatResponse"},i}(),p.NatType=function(){let i={},o=Object.create(i);return o[i[0]="UNKNOWN_NAT"]=0,o[i[1]="ASYMMETRIC"]=1,o[i[2]="SYMMETRIC"]=2,o}(),p.PunchHoleSent=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.socket_addr=l.newBuffer([]),i.prototype.id="",i.prototype.relay_server="",i.prototype.nat_type=0,i.prototype.version="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.socket_addr!=null&&Object.hasOwnProperty.call(e,"socket_addr")&&t.uint32(10).bytes(e.socket_addr),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(18).string(e.id),e.relay_server!=null&&Object.hasOwnProperty.call(e,"relay_server")&&t.uint32(26).string(e.relay_server),e.nat_type!=null&&Object.hasOwnProperty.call(e,"nat_type")&&t.uint32(32).int32(e.nat_type),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&t.uint32(42).string(e.version),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PunchHoleSent;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.socket_addr=e.bytes();break}case 2:{d.id=e.string();break}case 3:{d.relay_server=e.string();break}case 4:{d.nat_type=e.int32();break}case 5:{d.version=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&!(e.socket_addr&&typeof e.socket_addr.length=="number"||l.isString(e.socket_addr)))return"socket_addr: buffer expected";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id))return"id: string expected";if(e.relay_server!=null&&e.hasOwnProperty("relay_server")&&!l.isString(e.relay_server))return"relay_server: string expected";if(e.nat_type!=null&&e.hasOwnProperty("nat_type"))switch(e.nat_type){default:return"nat_type: enum value expected";case 0:case 1:case 2:break}return e.version!=null&&e.hasOwnProperty("version")&&!l.isString(e.version)?"version: string expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.PunchHoleSent)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PunchHoleSent;switch(e.socket_addr!=null&&(typeof e.socket_addr=="string"?l.base64.decode(e.socket_addr,n.socket_addr=l.newBuffer(l.base64.length(e.socket_addr)),0):e.socket_addr.length>=0&&(n.socket_addr=e.socket_addr)),e.id!=null&&(n.id=String(e.id)),e.relay_server!=null&&(n.relay_server=String(e.relay_server)),e.nat_type){default:if(typeof e.nat_type=="number"){n.nat_type=e.nat_type;break}break;case"UNKNOWN_NAT":case 0:n.nat_type=0;break;case"ASYMMETRIC":case 1:n.nat_type=1;break;case"SYMMETRIC":case 2:n.nat_type=2;break}return e.version!=null&&(n.version=String(e.version)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.socket_addr="":(n.socket_addr=[],t.bytes!==Array&&(n.socket_addr=l.newBuffer(n.socket_addr))),n.id="",n.relay_server="",n.nat_type=t.enums===String?"UNKNOWN_NAT":0,n.version=""),e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&(n.socket_addr=t.bytes===String?l.base64.encode(e.socket_addr,0,e.socket_addr.length):t.bytes===Array?Array.prototype.slice.call(e.socket_addr):e.socket_addr),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.relay_server!=null&&e.hasOwnProperty("relay_server")&&(n.relay_server=e.relay_server),e.nat_type!=null&&e.hasOwnProperty("nat_type")&&(n.nat_type=t.enums===String?u.hbb.NatType[e.nat_type]===void 0?e.nat_type:u.hbb.NatType[e.nat_type]:e.nat_type),e.version!=null&&e.hasOwnProperty("version")&&(n.version=e.version),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PunchHoleSent"},i}(),p.RegisterPk=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.uuid=l.newBuffer([]),i.prototype.pk=l.newBuffer([]),i.prototype.old_id="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.uuid!=null&&Object.hasOwnProperty.call(e,"uuid")&&t.uint32(18).bytes(e.uuid),e.pk!=null&&Object.hasOwnProperty.call(e,"pk")&&t.uint32(26).bytes(e.pk),e.old_id!=null&&Object.hasOwnProperty.call(e,"old_id")&&t.uint32(34).string(e.old_id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RegisterPk;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.uuid=e.bytes();break}case 3:{d.pk=e.bytes();break}case 4:{d.old_id=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.uuid!=null&&e.hasOwnProperty("uuid")&&!(e.uuid&&typeof e.uuid.length=="number"||l.isString(e.uuid))?"uuid: buffer expected":e.pk!=null&&e.hasOwnProperty("pk")&&!(e.pk&&typeof e.pk.length=="number"||l.isString(e.pk))?"pk: buffer expected":e.old_id!=null&&e.hasOwnProperty("old_id")&&!l.isString(e.old_id)?"old_id: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.RegisterPk)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RegisterPk;return e.id!=null&&(n.id=String(e.id)),e.uuid!=null&&(typeof e.uuid=="string"?l.base64.decode(e.uuid,n.uuid=l.newBuffer(l.base64.length(e.uuid)),0):e.uuid.length>=0&&(n.uuid=e.uuid)),e.pk!=null&&(typeof e.pk=="string"?l.base64.decode(e.pk,n.pk=l.newBuffer(l.base64.length(e.pk)),0):e.pk.length>=0&&(n.pk=e.pk)),e.old_id!=null&&(n.old_id=String(e.old_id)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",t.bytes===String?n.uuid="":(n.uuid=[],t.bytes!==Array&&(n.uuid=l.newBuffer(n.uuid))),t.bytes===String?n.pk="":(n.pk=[],t.bytes!==Array&&(n.pk=l.newBuffer(n.pk))),n.old_id=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.uuid!=null&&e.hasOwnProperty("uuid")&&(n.uuid=t.bytes===String?l.base64.encode(e.uuid,0,e.uuid.length):t.bytes===Array?Array.prototype.slice.call(e.uuid):e.uuid),e.pk!=null&&e.hasOwnProperty("pk")&&(n.pk=t.bytes===String?l.base64.encode(e.pk,0,e.pk.length):t.bytes===Array?Array.prototype.slice.call(e.pk):e.pk),e.old_id!=null&&e.hasOwnProperty("old_id")&&(n.old_id=e.old_id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RegisterPk"},i}(),p.RegisterPkResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.result=0,i.prototype.keep_alive=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.result!=null&&Object.hasOwnProperty.call(e,"result")&&t.uint32(8).int32(e.result),e.keep_alive!=null&&Object.hasOwnProperty.call(e,"keep_alive")&&t.uint32(16).int32(e.keep_alive),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RegisterPkResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.result=e.int32();break}case 2:{d.keep_alive=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.result!=null&&e.hasOwnProperty("result"))switch(e.result){default:return"result: enum value expected";case 0:case 2:case 3:case 4:case 5:case 6:case 7:break}return e.keep_alive!=null&&e.hasOwnProperty("keep_alive")&&!l.isInteger(e.keep_alive)?"keep_alive: integer expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.RegisterPkResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RegisterPkResponse;switch(e.result){default:if(typeof e.result=="number"){n.result=e.result;break}break;case"OK":case 0:n.result=0;break;case"UUID_MISMATCH":case 2:n.result=2;break;case"ID_EXISTS":case 3:n.result=3;break;case"TOO_FREQUENT":case 4:n.result=4;break;case"INVALID_ID_FORMAT":case 5:n.result=5;break;case"NOT_SUPPORT":case 6:n.result=6;break;case"SERVER_ERROR":case 7:n.result=7;break}return e.keep_alive!=null&&(n.keep_alive=e.keep_alive|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.result=t.enums===String?"OK":0,n.keep_alive=0),e.result!=null&&e.hasOwnProperty("result")&&(n.result=t.enums===String?u.hbb.RegisterPkResponse.Result[e.result]===void 0?e.result:u.hbb.RegisterPkResponse.Result[e.result]:e.result),e.keep_alive!=null&&e.hasOwnProperty("keep_alive")&&(n.keep_alive=e.keep_alive),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RegisterPkResponse"},i.Result=function(){let o={},e=Object.create(o);return e[o[0]="OK"]=0,e[o[2]="UUID_MISMATCH"]=2,e[o[3]="ID_EXISTS"]=3,e[o[4]="TOO_FREQUENT"]=4,e[o[5]="INVALID_ID_FORMAT"]=5,e[o[6]="NOT_SUPPORT"]=6,e[o[7]="SERVER_ERROR"]=7,e}(),i}(),p.PunchHoleResponse=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.socket_addr=l.newBuffer([]),i.prototype.pk=l.newBuffer([]),i.prototype.failure=0,i.prototype.relay_server="",i.prototype.nat_type=null,i.prototype.is_local=null,i.prototype.other_failure="",i.prototype.feedback=0;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["nat_type","is_local"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.socket_addr!=null&&Object.hasOwnProperty.call(t,"socket_addr")&&n.uint32(10).bytes(t.socket_addr),t.pk!=null&&Object.hasOwnProperty.call(t,"pk")&&n.uint32(18).bytes(t.pk),t.failure!=null&&Object.hasOwnProperty.call(t,"failure")&&n.uint32(24).int32(t.failure),t.relay_server!=null&&Object.hasOwnProperty.call(t,"relay_server")&&n.uint32(34).string(t.relay_server),t.nat_type!=null&&Object.hasOwnProperty.call(t,"nat_type")&&n.uint32(40).int32(t.nat_type),t.is_local!=null&&Object.hasOwnProperty.call(t,"is_local")&&n.uint32(48).bool(t.is_local),t.other_failure!=null&&Object.hasOwnProperty.call(t,"other_failure")&&n.uint32(58).string(t.other_failure),t.feedback!=null&&Object.hasOwnProperty.call(t,"feedback")&&n.uint32(64).int32(t.feedback),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.PunchHoleResponse;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.socket_addr=t.bytes();break}case 2:{c.pk=t.bytes();break}case 3:{c.failure=t.int32();break}case 4:{c.relay_server=t.string();break}case 5:{c.nat_type=t.int32();break}case 6:{c.is_local=t.bool();break}case 7:{c.other_failure=t.string();break}case 8:{c.feedback=t.int32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.socket_addr!=null&&t.hasOwnProperty("socket_addr")&&!(t.socket_addr&&typeof t.socket_addr.length=="number"||l.isString(t.socket_addr)))return"socket_addr: buffer expected";if(t.pk!=null&&t.hasOwnProperty("pk")&&!(t.pk&&typeof t.pk.length=="number"||l.isString(t.pk)))return"pk: buffer expected";if(t.failure!=null&&t.hasOwnProperty("failure"))switch(t.failure){default:return"failure: enum value expected";case 0:case 2:case 3:case 4:break}if(t.relay_server!=null&&t.hasOwnProperty("relay_server")&&!l.isString(t.relay_server))return"relay_server: string expected";if(t.nat_type!=null&&t.hasOwnProperty("nat_type"))switch(r.union=1,t.nat_type){default:return"nat_type: enum value expected";case 0:case 1:case 2:break}if(t.is_local!=null&&t.hasOwnProperty("is_local")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.is_local!="boolean")return"is_local: boolean expected"}return t.other_failure!=null&&t.hasOwnProperty("other_failure")&&!l.isString(t.other_failure)?"other_failure: string expected":t.feedback!=null&&t.hasOwnProperty("feedback")&&!l.isInteger(t.feedback)?"feedback: integer expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.PunchHoleResponse)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.PunchHoleResponse;switch(t.socket_addr!=null&&(typeof t.socket_addr=="string"?l.base64.decode(t.socket_addr,r.socket_addr=l.newBuffer(l.base64.length(t.socket_addr)),0):t.socket_addr.length>=0&&(r.socket_addr=t.socket_addr)),t.pk!=null&&(typeof t.pk=="string"?l.base64.decode(t.pk,r.pk=l.newBuffer(l.base64.length(t.pk)),0):t.pk.length>=0&&(r.pk=t.pk)),t.failure){default:if(typeof t.failure=="number"){r.failure=t.failure;break}break;case"ID_NOT_EXIST":case 0:r.failure=0;break;case"OFFLINE":case 2:r.failure=2;break;case"LICENSE_MISMATCH":case 3:r.failure=3;break;case"LICENSE_OVERUSE":case 4:r.failure=4;break}switch(t.relay_server!=null&&(r.relay_server=String(t.relay_server)),t.nat_type){default:if(typeof t.nat_type=="number"){r.nat_type=t.nat_type;break}break;case"UNKNOWN_NAT":case 0:r.nat_type=0;break;case"ASYMMETRIC":case 1:r.nat_type=1;break;case"SYMMETRIC":case 2:r.nat_type=2;break}return t.is_local!=null&&(r.is_local=!!t.is_local),t.other_failure!=null&&(r.other_failure=String(t.other_failure)),t.feedback!=null&&(r.feedback=t.feedback|0),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(n.bytes===String?r.socket_addr="":(r.socket_addr=[],n.bytes!==Array&&(r.socket_addr=l.newBuffer(r.socket_addr))),n.bytes===String?r.pk="":(r.pk=[],n.bytes!==Array&&(r.pk=l.newBuffer(r.pk))),r.failure=n.enums===String?"ID_NOT_EXIST":0,r.relay_server="",r.other_failure="",r.feedback=0),t.socket_addr!=null&&t.hasOwnProperty("socket_addr")&&(r.socket_addr=n.bytes===String?l.base64.encode(t.socket_addr,0,t.socket_addr.length):n.bytes===Array?Array.prototype.slice.call(t.socket_addr):t.socket_addr),t.pk!=null&&t.hasOwnProperty("pk")&&(r.pk=n.bytes===String?l.base64.encode(t.pk,0,t.pk.length):n.bytes===Array?Array.prototype.slice.call(t.pk):t.pk),t.failure!=null&&t.hasOwnProperty("failure")&&(r.failure=n.enums===String?u.hbb.PunchHoleResponse.Failure[t.failure]===void 0?t.failure:u.hbb.PunchHoleResponse.Failure[t.failure]:t.failure),t.relay_server!=null&&t.hasOwnProperty("relay_server")&&(r.relay_server=t.relay_server),t.nat_type!=null&&t.hasOwnProperty("nat_type")&&(r.nat_type=n.enums===String?u.hbb.NatType[t.nat_type]===void 0?t.nat_type:u.hbb.NatType[t.nat_type]:t.nat_type,n.oneofs&&(r.union="nat_type")),t.is_local!=null&&t.hasOwnProperty("is_local")&&(r.is_local=t.is_local,n.oneofs&&(r.union="is_local")),t.other_failure!=null&&t.hasOwnProperty("other_failure")&&(r.other_failure=t.other_failure),t.feedback!=null&&t.hasOwnProperty("feedback")&&(r.feedback=t.feedback),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.PunchHoleResponse"},i.Failure=function(){let e={},t=Object.create(e);return t[e[0]="ID_NOT_EXIST"]=0,t[e[2]="OFFLINE"]=2,t[e[3]="LICENSE_MISMATCH"]=3,t[e[4]="LICENSE_OVERUSE"]=4,t}(),i}(),p.ConfigUpdate=function(){function i(o){if(this.rendezvous_servers=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.serial=0,i.prototype.rendezvous_servers=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.serial!=null&&Object.hasOwnProperty.call(e,"serial")&&t.uint32(8).int32(e.serial),e.rendezvous_servers!=null&&e.rendezvous_servers.length)for(let n=0;n<e.rendezvous_servers.length;++n)t.uint32(18).string(e.rendezvous_servers[n]);return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ConfigUpdate;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.serial=e.int32();break}case 2:{d.rendezvous_servers&&d.rendezvous_servers.length||(d.rendezvous_servers=[]),d.rendezvous_servers.push(e.string());break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.serial!=null&&e.hasOwnProperty("serial")&&!l.isInteger(e.serial))return"serial: integer expected";if(e.rendezvous_servers!=null&&e.hasOwnProperty("rendezvous_servers")){if(!Array.isArray(e.rendezvous_servers))return"rendezvous_servers: array expected";for(let n=0;n<e.rendezvous_servers.length;++n)if(!l.isString(e.rendezvous_servers[n]))return"rendezvous_servers: string[] expected"}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.ConfigUpdate)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ConfigUpdate;if(e.serial!=null&&(n.serial=e.serial|0),e.rendezvous_servers){if(!Array.isArray(e.rendezvous_servers))throw TypeError(".hbb.ConfigUpdate.rendezvous_servers: array expected");n.rendezvous_servers=[];for(let r=0;r<e.rendezvous_servers.length;++r)n.rendezvous_servers[r]=String(e.rendezvous_servers[r])}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.rendezvous_servers=[]),t.defaults&&(n.serial=0),e.serial!=null&&e.hasOwnProperty("serial")&&(n.serial=e.serial),e.rendezvous_servers&&e.rendezvous_servers.length){n.rendezvous_servers=[];for(let r=0;r<e.rendezvous_servers.length;++r)n.rendezvous_servers[r]=e.rendezvous_servers[r]}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ConfigUpdate"},i}(),p.RequestRelay=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.uuid="",i.prototype.socket_addr=l.newBuffer([]),i.prototype.relay_server="",i.prototype.secure=!1,i.prototype.licence_key="",i.prototype.conn_type=0,i.prototype.token="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.uuid!=null&&Object.hasOwnProperty.call(e,"uuid")&&t.uint32(18).string(e.uuid),e.socket_addr!=null&&Object.hasOwnProperty.call(e,"socket_addr")&&t.uint32(26).bytes(e.socket_addr),e.relay_server!=null&&Object.hasOwnProperty.call(e,"relay_server")&&t.uint32(34).string(e.relay_server),e.secure!=null&&Object.hasOwnProperty.call(e,"secure")&&t.uint32(40).bool(e.secure),e.licence_key!=null&&Object.hasOwnProperty.call(e,"licence_key")&&t.uint32(50).string(e.licence_key),e.conn_type!=null&&Object.hasOwnProperty.call(e,"conn_type")&&t.uint32(56).int32(e.conn_type),e.token!=null&&Object.hasOwnProperty.call(e,"token")&&t.uint32(66).string(e.token),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RequestRelay;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.uuid=e.string();break}case 3:{d.socket_addr=e.bytes();break}case 4:{d.relay_server=e.string();break}case 5:{d.secure=e.bool();break}case 6:{d.licence_key=e.string();break}case 7:{d.conn_type=e.int32();break}case 8:{d.token=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id))return"id: string expected";if(e.uuid!=null&&e.hasOwnProperty("uuid")&&!l.isString(e.uuid))return"uuid: string expected";if(e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&!(e.socket_addr&&typeof e.socket_addr.length=="number"||l.isString(e.socket_addr)))return"socket_addr: buffer expected";if(e.relay_server!=null&&e.hasOwnProperty("relay_server")&&!l.isString(e.relay_server))return"relay_server: string expected";if(e.secure!=null&&e.hasOwnProperty("secure")&&typeof e.secure!="boolean")return"secure: boolean expected";if(e.licence_key!=null&&e.hasOwnProperty("licence_key")&&!l.isString(e.licence_key))return"licence_key: string expected";if(e.conn_type!=null&&e.hasOwnProperty("conn_type"))switch(e.conn_type){default:return"conn_type: enum value expected";case 0:case 1:case 2:case 3:case 4:break}return e.token!=null&&e.hasOwnProperty("token")&&!l.isString(e.token)?"token: string expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.RequestRelay)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RequestRelay;switch(e.id!=null&&(n.id=String(e.id)),e.uuid!=null&&(n.uuid=String(e.uuid)),e.socket_addr!=null&&(typeof e.socket_addr=="string"?l.base64.decode(e.socket_addr,n.socket_addr=l.newBuffer(l.base64.length(e.socket_addr)),0):e.socket_addr.length>=0&&(n.socket_addr=e.socket_addr)),e.relay_server!=null&&(n.relay_server=String(e.relay_server)),e.secure!=null&&(n.secure=!!e.secure),e.licence_key!=null&&(n.licence_key=String(e.licence_key)),e.conn_type){default:if(typeof e.conn_type=="number"){n.conn_type=e.conn_type;break}break;case"DEFAULT_CONN":case 0:n.conn_type=0;break;case"FILE_TRANSFER":case 1:n.conn_type=1;break;case"PORT_FORWARD":case 2:n.conn_type=2;break;case"RDP":case 3:n.conn_type=3;break;case"VIEW_CAMERA":case 4:n.conn_type=4;break}return e.token!=null&&(n.token=String(e.token)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",n.uuid="",t.bytes===String?n.socket_addr="":(n.socket_addr=[],t.bytes!==Array&&(n.socket_addr=l.newBuffer(n.socket_addr))),n.relay_server="",n.secure=!1,n.licence_key="",n.conn_type=t.enums===String?"DEFAULT_CONN":0,n.token=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.uuid!=null&&e.hasOwnProperty("uuid")&&(n.uuid=e.uuid),e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&(n.socket_addr=t.bytes===String?l.base64.encode(e.socket_addr,0,e.socket_addr.length):t.bytes===Array?Array.prototype.slice.call(e.socket_addr):e.socket_addr),e.relay_server!=null&&e.hasOwnProperty("relay_server")&&(n.relay_server=e.relay_server),e.secure!=null&&e.hasOwnProperty("secure")&&(n.secure=e.secure),e.licence_key!=null&&e.hasOwnProperty("licence_key")&&(n.licence_key=e.licence_key),e.conn_type!=null&&e.hasOwnProperty("conn_type")&&(n.conn_type=t.enums===String?u.hbb.ConnType[e.conn_type]===void 0?e.conn_type:u.hbb.ConnType[e.conn_type]:e.conn_type),e.token!=null&&e.hasOwnProperty("token")&&(n.token=e.token),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RequestRelay"},i}(),p.RelayResponse=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.socket_addr=l.newBuffer([]),i.prototype.uuid="",i.prototype.relay_server="",i.prototype.id=null,i.prototype.pk=null,i.prototype.refuse_reason="",i.prototype.version="",i.prototype.feedback=0;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["id","pk"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.socket_addr!=null&&Object.hasOwnProperty.call(t,"socket_addr")&&n.uint32(10).bytes(t.socket_addr),t.uuid!=null&&Object.hasOwnProperty.call(t,"uuid")&&n.uint32(18).string(t.uuid),t.relay_server!=null&&Object.hasOwnProperty.call(t,"relay_server")&&n.uint32(26).string(t.relay_server),t.id!=null&&Object.hasOwnProperty.call(t,"id")&&n.uint32(34).string(t.id),t.pk!=null&&Object.hasOwnProperty.call(t,"pk")&&n.uint32(42).bytes(t.pk),t.refuse_reason!=null&&Object.hasOwnProperty.call(t,"refuse_reason")&&n.uint32(50).string(t.refuse_reason),t.version!=null&&Object.hasOwnProperty.call(t,"version")&&n.uint32(58).string(t.version),t.feedback!=null&&Object.hasOwnProperty.call(t,"feedback")&&n.uint32(72).int32(t.feedback),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.RelayResponse;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.socket_addr=t.bytes();break}case 2:{c.uuid=t.string();break}case 3:{c.relay_server=t.string();break}case 4:{c.id=t.string();break}case 5:{c.pk=t.bytes();break}case 6:{c.refuse_reason=t.string();break}case 7:{c.version=t.string();break}case 9:{c.feedback=t.int32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.socket_addr!=null&&t.hasOwnProperty("socket_addr")&&!(t.socket_addr&&typeof t.socket_addr.length=="number"||l.isString(t.socket_addr)))return"socket_addr: buffer expected";if(t.uuid!=null&&t.hasOwnProperty("uuid")&&!l.isString(t.uuid))return"uuid: string expected";if(t.relay_server!=null&&t.hasOwnProperty("relay_server")&&!l.isString(t.relay_server))return"relay_server: string expected";if(t.id!=null&&t.hasOwnProperty("id")&&(r.union=1,!l.isString(t.id)))return"id: string expected";if(t.pk!=null&&t.hasOwnProperty("pk")){if(r.union===1)return"union: multiple values";if(r.union=1,!(t.pk&&typeof t.pk.length=="number"||l.isString(t.pk)))return"pk: buffer expected"}return t.refuse_reason!=null&&t.hasOwnProperty("refuse_reason")&&!l.isString(t.refuse_reason)?"refuse_reason: string expected":t.version!=null&&t.hasOwnProperty("version")&&!l.isString(t.version)?"version: string expected":t.feedback!=null&&t.hasOwnProperty("feedback")&&!l.isInteger(t.feedback)?"feedback: integer expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.RelayResponse)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.RelayResponse;return t.socket_addr!=null&&(typeof t.socket_addr=="string"?l.base64.decode(t.socket_addr,r.socket_addr=l.newBuffer(l.base64.length(t.socket_addr)),0):t.socket_addr.length>=0&&(r.socket_addr=t.socket_addr)),t.uuid!=null&&(r.uuid=String(t.uuid)),t.relay_server!=null&&(r.relay_server=String(t.relay_server)),t.id!=null&&(r.id=String(t.id)),t.pk!=null&&(typeof t.pk=="string"?l.base64.decode(t.pk,r.pk=l.newBuffer(l.base64.length(t.pk)),0):t.pk.length>=0&&(r.pk=t.pk)),t.refuse_reason!=null&&(r.refuse_reason=String(t.refuse_reason)),t.version!=null&&(r.version=String(t.version)),t.feedback!=null&&(r.feedback=t.feedback|0),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(n.bytes===String?r.socket_addr="":(r.socket_addr=[],n.bytes!==Array&&(r.socket_addr=l.newBuffer(r.socket_addr))),r.uuid="",r.relay_server="",r.refuse_reason="",r.version="",r.feedback=0),t.socket_addr!=null&&t.hasOwnProperty("socket_addr")&&(r.socket_addr=n.bytes===String?l.base64.encode(t.socket_addr,0,t.socket_addr.length):n.bytes===Array?Array.prototype.slice.call(t.socket_addr):t.socket_addr),t.uuid!=null&&t.hasOwnProperty("uuid")&&(r.uuid=t.uuid),t.relay_server!=null&&t.hasOwnProperty("relay_server")&&(r.relay_server=t.relay_server),t.id!=null&&t.hasOwnProperty("id")&&(r.id=t.id,n.oneofs&&(r.union="id")),t.pk!=null&&t.hasOwnProperty("pk")&&(r.pk=n.bytes===String?l.base64.encode(t.pk,0,t.pk.length):n.bytes===Array?Array.prototype.slice.call(t.pk):t.pk,n.oneofs&&(r.union="pk")),t.refuse_reason!=null&&t.hasOwnProperty("refuse_reason")&&(r.refuse_reason=t.refuse_reason),t.version!=null&&t.hasOwnProperty("version")&&(r.version=t.version),t.feedback!=null&&t.hasOwnProperty("feedback")&&(r.feedback=t.feedback),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.RelayResponse"},i}(),p.SoftwareUpdate=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.url="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.url!=null&&Object.hasOwnProperty.call(e,"url")&&t.uint32(10).string(e.url),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SoftwareUpdate;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.url=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.url!=null&&e.hasOwnProperty("url")&&!l.isString(e.url)?"url: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.SoftwareUpdate)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SoftwareUpdate;return e.url!=null&&(n.url=String(e.url)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.url=""),e.url!=null&&e.hasOwnProperty("url")&&(n.url=e.url),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SoftwareUpdate"},i}(),p.FetchLocalAddr=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.socket_addr=l.newBuffer([]),i.prototype.relay_server="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.socket_addr!=null&&Object.hasOwnProperty.call(e,"socket_addr")&&t.uint32(10).bytes(e.socket_addr),e.relay_server!=null&&Object.hasOwnProperty.call(e,"relay_server")&&t.uint32(18).string(e.relay_server),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FetchLocalAddr;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.socket_addr=e.bytes();break}case 2:{d.relay_server=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&!(e.socket_addr&&typeof e.socket_addr.length=="number"||l.isString(e.socket_addr))?"socket_addr: buffer expected":e.relay_server!=null&&e.hasOwnProperty("relay_server")&&!l.isString(e.relay_server)?"relay_server: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FetchLocalAddr)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FetchLocalAddr;return e.socket_addr!=null&&(typeof e.socket_addr=="string"?l.base64.decode(e.socket_addr,n.socket_addr=l.newBuffer(l.base64.length(e.socket_addr)),0):e.socket_addr.length>=0&&(n.socket_addr=e.socket_addr)),e.relay_server!=null&&(n.relay_server=String(e.relay_server)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.socket_addr="":(n.socket_addr=[],t.bytes!==Array&&(n.socket_addr=l.newBuffer(n.socket_addr))),n.relay_server=""),e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&(n.socket_addr=t.bytes===String?l.base64.encode(e.socket_addr,0,e.socket_addr.length):t.bytes===Array?Array.prototype.slice.call(e.socket_addr):e.socket_addr),e.relay_server!=null&&e.hasOwnProperty("relay_server")&&(n.relay_server=e.relay_server),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FetchLocalAddr"},i}(),p.LocalAddr=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.socket_addr=l.newBuffer([]),i.prototype.local_addr=l.newBuffer([]),i.prototype.relay_server="",i.prototype.id="",i.prototype.version="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.socket_addr!=null&&Object.hasOwnProperty.call(e,"socket_addr")&&t.uint32(10).bytes(e.socket_addr),e.local_addr!=null&&Object.hasOwnProperty.call(e,"local_addr")&&t.uint32(18).bytes(e.local_addr),e.relay_server!=null&&Object.hasOwnProperty.call(e,"relay_server")&&t.uint32(26).string(e.relay_server),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(34).string(e.id),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&t.uint32(42).string(e.version),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.LocalAddr;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.socket_addr=e.bytes();break}case 2:{d.local_addr=e.bytes();break}case 3:{d.relay_server=e.string();break}case 4:{d.id=e.string();break}case 5:{d.version=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&!(e.socket_addr&&typeof e.socket_addr.length=="number"||l.isString(e.socket_addr))?"socket_addr: buffer expected":e.local_addr!=null&&e.hasOwnProperty("local_addr")&&!(e.local_addr&&typeof e.local_addr.length=="number"||l.isString(e.local_addr))?"local_addr: buffer expected":e.relay_server!=null&&e.hasOwnProperty("relay_server")&&!l.isString(e.relay_server)?"relay_server: string expected":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.version!=null&&e.hasOwnProperty("version")&&!l.isString(e.version)?"version: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.LocalAddr)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.LocalAddr;return e.socket_addr!=null&&(typeof e.socket_addr=="string"?l.base64.decode(e.socket_addr,n.socket_addr=l.newBuffer(l.base64.length(e.socket_addr)),0):e.socket_addr.length>=0&&(n.socket_addr=e.socket_addr)),e.local_addr!=null&&(typeof e.local_addr=="string"?l.base64.decode(e.local_addr,n.local_addr=l.newBuffer(l.base64.length(e.local_addr)),0):e.local_addr.length>=0&&(n.local_addr=e.local_addr)),e.relay_server!=null&&(n.relay_server=String(e.relay_server)),e.id!=null&&(n.id=String(e.id)),e.version!=null&&(n.version=String(e.version)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.socket_addr="":(n.socket_addr=[],t.bytes!==Array&&(n.socket_addr=l.newBuffer(n.socket_addr))),t.bytes===String?n.local_addr="":(n.local_addr=[],t.bytes!==Array&&(n.local_addr=l.newBuffer(n.local_addr))),n.relay_server="",n.id="",n.version=""),e.socket_addr!=null&&e.hasOwnProperty("socket_addr")&&(n.socket_addr=t.bytes===String?l.base64.encode(e.socket_addr,0,e.socket_addr.length):t.bytes===Array?Array.prototype.slice.call(e.socket_addr):e.socket_addr),e.local_addr!=null&&e.hasOwnProperty("local_addr")&&(n.local_addr=t.bytes===String?l.base64.encode(e.local_addr,0,e.local_addr.length):t.bytes===Array?Array.prototype.slice.call(e.local_addr):e.local_addr),e.relay_server!=null&&e.hasOwnProperty("relay_server")&&(n.relay_server=e.relay_server),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.version!=null&&e.hasOwnProperty("version")&&(n.version=e.version),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.LocalAddr"},i}(),p.PeerDiscovery=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.cmd="",i.prototype.mac="",i.prototype.id="",i.prototype.username="",i.prototype.hostname="",i.prototype.platform="",i.prototype.misc="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.cmd!=null&&Object.hasOwnProperty.call(e,"cmd")&&t.uint32(10).string(e.cmd),e.mac!=null&&Object.hasOwnProperty.call(e,"mac")&&t.uint32(18).string(e.mac),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(26).string(e.id),e.username!=null&&Object.hasOwnProperty.call(e,"username")&&t.uint32(34).string(e.username),e.hostname!=null&&Object.hasOwnProperty.call(e,"hostname")&&t.uint32(42).string(e.hostname),e.platform!=null&&Object.hasOwnProperty.call(e,"platform")&&t.uint32(50).string(e.platform),e.misc!=null&&Object.hasOwnProperty.call(e,"misc")&&t.uint32(58).string(e.misc),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PeerDiscovery;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.cmd=e.string();break}case 2:{d.mac=e.string();break}case 3:{d.id=e.string();break}case 4:{d.username=e.string();break}case 5:{d.hostname=e.string();break}case 6:{d.platform=e.string();break}case 7:{d.misc=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.cmd!=null&&e.hasOwnProperty("cmd")&&!l.isString(e.cmd)?"cmd: string expected":e.mac!=null&&e.hasOwnProperty("mac")&&!l.isString(e.mac)?"mac: string expected":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.username!=null&&e.hasOwnProperty("username")&&!l.isString(e.username)?"username: string expected":e.hostname!=null&&e.hasOwnProperty("hostname")&&!l.isString(e.hostname)?"hostname: string expected":e.platform!=null&&e.hasOwnProperty("platform")&&!l.isString(e.platform)?"platform: string expected":e.misc!=null&&e.hasOwnProperty("misc")&&!l.isString(e.misc)?"misc: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.PeerDiscovery)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PeerDiscovery;return e.cmd!=null&&(n.cmd=String(e.cmd)),e.mac!=null&&(n.mac=String(e.mac)),e.id!=null&&(n.id=String(e.id)),e.username!=null&&(n.username=String(e.username)),e.hostname!=null&&(n.hostname=String(e.hostname)),e.platform!=null&&(n.platform=String(e.platform)),e.misc!=null&&(n.misc=String(e.misc)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.cmd="",n.mac="",n.id="",n.username="",n.hostname="",n.platform="",n.misc=""),e.cmd!=null&&e.hasOwnProperty("cmd")&&(n.cmd=e.cmd),e.mac!=null&&e.hasOwnProperty("mac")&&(n.mac=e.mac),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.username!=null&&e.hasOwnProperty("username")&&(n.username=e.username),e.hostname!=null&&e.hasOwnProperty("hostname")&&(n.hostname=e.hostname),e.platform!=null&&e.hasOwnProperty("platform")&&(n.platform=e.platform),e.misc!=null&&e.hasOwnProperty("misc")&&(n.misc=e.misc),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PeerDiscovery"},i}(),p.OnlineRequest=function(){function i(o){if(this.peers=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.peers=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.peers!=null&&e.peers.length)for(let n=0;n<e.peers.length;++n)t.uint32(18).string(e.peers[n]);return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.OnlineRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.peers&&d.peers.length||(d.peers=[]),d.peers.push(e.string());break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id))return"id: string expected";if(e.peers!=null&&e.hasOwnProperty("peers")){if(!Array.isArray(e.peers))return"peers: array expected";for(let n=0;n<e.peers.length;++n)if(!l.isString(e.peers[n]))return"peers: string[] expected"}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.OnlineRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.OnlineRequest;if(e.id!=null&&(n.id=String(e.id)),e.peers){if(!Array.isArray(e.peers))throw TypeError(".hbb.OnlineRequest.peers: array expected");n.peers=[];for(let r=0;r<e.peers.length;++r)n.peers[r]=String(e.peers[r])}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.peers=[]),t.defaults&&(n.id=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.peers&&e.peers.length){n.peers=[];for(let r=0;r<e.peers.length;++r)n.peers[r]=e.peers[r]}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.OnlineRequest"},i}(),p.OnlineResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.states=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.states!=null&&Object.hasOwnProperty.call(e,"states")&&t.uint32(10).bytes(e.states),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.OnlineResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.states=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.states!=null&&e.hasOwnProperty("states")&&!(e.states&&typeof e.states.length=="number"||l.isString(e.states))?"states: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.OnlineResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.OnlineResponse;return e.states!=null&&(typeof e.states=="string"?l.base64.decode(e.states,n.states=l.newBuffer(l.base64.length(e.states)),0):e.states.length>=0&&(n.states=e.states)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.states="":(n.states=[],t.bytes!==Array&&(n.states=l.newBuffer(n.states)))),e.states!=null&&e.hasOwnProperty("states")&&(n.states=t.bytes===String?l.base64.encode(e.states,0,e.states.length):t.bytes===Array?Array.prototype.slice.call(e.states):e.states),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.OnlineResponse"},i}(),p.KeyExchange=function(){function i(o){if(this.keys=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.keys=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.keys!=null&&e.keys.length)for(let n=0;n<e.keys.length;++n)t.uint32(10).bytes(e.keys[n]);return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.KeyExchange;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.keys&&d.keys.length||(d.keys=[]),d.keys.push(e.bytes());break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.keys!=null&&e.hasOwnProperty("keys")){if(!Array.isArray(e.keys))return"keys: array expected";for(let n=0;n<e.keys.length;++n)if(!(e.keys[n]&&typeof e.keys[n].length=="number"||l.isString(e.keys[n])))return"keys: buffer[] expected"}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.KeyExchange)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.KeyExchange;if(e.keys){if(!Array.isArray(e.keys))throw TypeError(".hbb.KeyExchange.keys: array expected");n.keys=[];for(let r=0;r<e.keys.length;++r)typeof e.keys[r]=="string"?l.base64.decode(e.keys[r],n.keys[r]=l.newBuffer(l.base64.length(e.keys[r])),0):e.keys[r].length>=0&&(n.keys[r]=e.keys[r])}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.keys=[]),e.keys&&e.keys.length){n.keys=[];for(let r=0;r<e.keys.length;++r)n.keys[r]=t.bytes===String?l.base64.encode(e.keys[r],0,e.keys[r].length):t.bytes===Array?Array.prototype.slice.call(e.keys[r]):e.keys[r]}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.KeyExchange"},i}(),p.HealthCheck=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.token="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.token!=null&&Object.hasOwnProperty.call(e,"token")&&t.uint32(10).string(e.token),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.HealthCheck;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.token=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.token!=null&&e.hasOwnProperty("token")&&!l.isString(e.token)?"token: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.HealthCheck)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.HealthCheck;return e.token!=null&&(n.token=String(e.token)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.token=""),e.token!=null&&e.hasOwnProperty("token")&&(n.token=e.token),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.HealthCheck"},i}(),p.HeaderEntry=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.name="",i.prototype.value="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.name!=null&&Object.hasOwnProperty.call(e,"name")&&t.uint32(10).string(e.name),e.value!=null&&Object.hasOwnProperty.call(e,"value")&&t.uint32(18).string(e.value),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.HeaderEntry;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.name=e.string();break}case 2:{d.value=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name)?"name: string expected":e.value!=null&&e.hasOwnProperty("value")&&!l.isString(e.value)?"value: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.HeaderEntry)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.HeaderEntry;return e.name!=null&&(n.name=String(e.name)),e.value!=null&&(n.value=String(e.value)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.name="",n.value=""),e.name!=null&&e.hasOwnProperty("name")&&(n.name=e.name),e.value!=null&&e.hasOwnProperty("value")&&(n.value=e.value),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.HeaderEntry"},i}(),p.HttpProxyRequest=function(){function i(o){if(this.headers=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.method="",i.prototype.path="",i.prototype.headers=l.emptyArray,i.prototype.body=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.method!=null&&Object.hasOwnProperty.call(e,"method")&&t.uint32(10).string(e.method),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.headers!=null&&e.headers.length)for(let n=0;n<e.headers.length;++n)u.hbb.HeaderEntry.encode(e.headers[n],t.uint32(26).fork()).ldelim();return e.body!=null&&Object.hasOwnProperty.call(e,"body")&&t.uint32(34).bytes(e.body),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.HttpProxyRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.method=e.string();break}case 2:{d.path=e.string();break}case 3:{d.headers&&d.headers.length||(d.headers=[]),d.headers.push(u.hbb.HeaderEntry.decode(e,e.uint32(),void 0,r+1));break}case 4:{d.body=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.method!=null&&e.hasOwnProperty("method")&&!l.isString(e.method))return"method: string expected";if(e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path))return"path: string expected";if(e.headers!=null&&e.hasOwnProperty("headers")){if(!Array.isArray(e.headers))return"headers: array expected";for(let n=0;n<e.headers.length;++n){let r=u.hbb.HeaderEntry.verify(e.headers[n],t+1);if(r)return"headers."+r}}return e.body!=null&&e.hasOwnProperty("body")&&!(e.body&&typeof e.body.length=="number"||l.isString(e.body))?"body: buffer expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.HttpProxyRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.HttpProxyRequest;if(e.method!=null&&(n.method=String(e.method)),e.path!=null&&(n.path=String(e.path)),e.headers){if(!Array.isArray(e.headers))throw TypeError(".hbb.HttpProxyRequest.headers: array expected");n.headers=[];for(let r=0;r<e.headers.length;++r){if(typeof e.headers[r]!="object")throw TypeError(".hbb.HttpProxyRequest.headers: object expected");n.headers[r]=u.hbb.HeaderEntry.fromObject(e.headers[r],t+1)}}return e.body!=null&&(typeof e.body=="string"?l.base64.decode(e.body,n.body=l.newBuffer(l.base64.length(e.body)),0):e.body.length>=0&&(n.body=e.body)),n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.headers=[]),t.defaults&&(n.method="",n.path="",t.bytes===String?n.body="":(n.body=[],t.bytes!==Array&&(n.body=l.newBuffer(n.body)))),e.method!=null&&e.hasOwnProperty("method")&&(n.method=e.method),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.headers&&e.headers.length){n.headers=[];for(let r=0;r<e.headers.length;++r)n.headers[r]=u.hbb.HeaderEntry.toObject(e.headers[r],t)}return e.body!=null&&e.hasOwnProperty("body")&&(n.body=t.bytes===String?l.base64.encode(e.body,0,e.body.length):t.bytes===Array?Array.prototype.slice.call(e.body):e.body),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.HttpProxyRequest"},i}(),p.HttpProxyResponse=function(){function i(o){if(this.headers=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.status=0,i.prototype.headers=l.emptyArray,i.prototype.body=l.newBuffer([]),i.prototype.error="",i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.status!=null&&Object.hasOwnProperty.call(e,"status")&&t.uint32(8).int32(e.status),e.headers!=null&&e.headers.length)for(let n=0;n<e.headers.length;++n)u.hbb.HeaderEntry.encode(e.headers[n],t.uint32(18).fork()).ldelim();return e.body!=null&&Object.hasOwnProperty.call(e,"body")&&t.uint32(26).bytes(e.body),e.error!=null&&Object.hasOwnProperty.call(e,"error")&&t.uint32(34).string(e.error),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.HttpProxyResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.status=e.int32();break}case 2:{d.headers&&d.headers.length||(d.headers=[]),d.headers.push(u.hbb.HeaderEntry.decode(e,e.uint32(),void 0,r+1));break}case 3:{d.body=e.bytes();break}case 4:{d.error=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.status!=null&&e.hasOwnProperty("status")&&!l.isInteger(e.status))return"status: integer expected";if(e.headers!=null&&e.hasOwnProperty("headers")){if(!Array.isArray(e.headers))return"headers: array expected";for(let n=0;n<e.headers.length;++n){let r=u.hbb.HeaderEntry.verify(e.headers[n],t+1);if(r)return"headers."+r}}return e.body!=null&&e.hasOwnProperty("body")&&!(e.body&&typeof e.body.length=="number"||l.isString(e.body))?"body: buffer expected":e.error!=null&&e.hasOwnProperty("error")&&!l.isString(e.error)?"error: string expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.HttpProxyResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.HttpProxyResponse;if(e.status!=null&&(n.status=e.status|0),e.headers){if(!Array.isArray(e.headers))throw TypeError(".hbb.HttpProxyResponse.headers: array expected");n.headers=[];for(let r=0;r<e.headers.length;++r){if(typeof e.headers[r]!="object")throw TypeError(".hbb.HttpProxyResponse.headers: object expected");n.headers[r]=u.hbb.HeaderEntry.fromObject(e.headers[r],t+1)}}return e.body!=null&&(typeof e.body=="string"?l.base64.decode(e.body,n.body=l.newBuffer(l.base64.length(e.body)),0):e.body.length>=0&&(n.body=e.body)),e.error!=null&&(n.error=String(e.error)),n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.headers=[]),t.defaults&&(n.status=0,t.bytes===String?n.body="":(n.body=[],t.bytes!==Array&&(n.body=l.newBuffer(n.body))),n.error=""),e.status!=null&&e.hasOwnProperty("status")&&(n.status=e.status),e.headers&&e.headers.length){n.headers=[];for(let r=0;r<e.headers.length;++r)n.headers[r]=u.hbb.HeaderEntry.toObject(e.headers[r],t)}return e.body!=null&&e.hasOwnProperty("body")&&(n.body=t.bytes===String?l.base64.encode(e.body,0,e.body.length):t.bytes===Array?Array.prototype.slice.call(e.body):e.body),e.error!=null&&e.hasOwnProperty("error")&&(n.error=e.error),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.HttpProxyResponse"},i}(),p.RendezvousMessage=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.register_peer=null,i.prototype.register_peer_response=null,i.prototype.punch_hole_request=null,i.prototype.punch_hole=null,i.prototype.punch_hole_sent=null,i.prototype.punch_hole_response=null,i.prototype.fetch_local_addr=null,i.prototype.local_addr=null,i.prototype.configure_update=null,i.prototype.register_pk=null,i.prototype.register_pk_response=null,i.prototype.software_update=null,i.prototype.request_relay=null,i.prototype.relay_response=null,i.prototype.test_nat_request=null,i.prototype.test_nat_response=null,i.prototype.peer_discovery=null,i.prototype.online_request=null,i.prototype.online_response=null,i.prototype.key_exchange=null,i.prototype.hc=null,i.prototype.http_proxy_request=null,i.prototype.http_proxy_response=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["register_peer","register_peer_response","punch_hole_request","punch_hole","punch_hole_sent","punch_hole_response","fetch_local_addr","local_addr","configure_update","register_pk","register_pk_response","software_update","request_relay","relay_response","test_nat_request","test_nat_response","peer_discovery","online_request","online_response","key_exchange","hc","http_proxy_request","http_proxy_response"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.register_peer!=null&&Object.hasOwnProperty.call(t,"register_peer")&&u.hbb.RegisterPeer.encode(t.register_peer,n.uint32(50).fork()).ldelim(),t.register_peer_response!=null&&Object.hasOwnProperty.call(t,"register_peer_response")&&u.hbb.RegisterPeerResponse.encode(t.register_peer_response,n.uint32(58).fork()).ldelim(),t.punch_hole_request!=null&&Object.hasOwnProperty.call(t,"punch_hole_request")&&u.hbb.PunchHoleRequest.encode(t.punch_hole_request,n.uint32(66).fork()).ldelim(),t.punch_hole!=null&&Object.hasOwnProperty.call(t,"punch_hole")&&u.hbb.PunchHole.encode(t.punch_hole,n.uint32(74).fork()).ldelim(),t.punch_hole_sent!=null&&Object.hasOwnProperty.call(t,"punch_hole_sent")&&u.hbb.PunchHoleSent.encode(t.punch_hole_sent,n.uint32(82).fork()).ldelim(),t.punch_hole_response!=null&&Object.hasOwnProperty.call(t,"punch_hole_response")&&u.hbb.PunchHoleResponse.encode(t.punch_hole_response,n.uint32(90).fork()).ldelim(),t.fetch_local_addr!=null&&Object.hasOwnProperty.call(t,"fetch_local_addr")&&u.hbb.FetchLocalAddr.encode(t.fetch_local_addr,n.uint32(98).fork()).ldelim(),t.local_addr!=null&&Object.hasOwnProperty.call(t,"local_addr")&&u.hbb.LocalAddr.encode(t.local_addr,n.uint32(106).fork()).ldelim(),t.configure_update!=null&&Object.hasOwnProperty.call(t,"configure_update")&&u.hbb.ConfigUpdate.encode(t.configure_update,n.uint32(114).fork()).ldelim(),t.register_pk!=null&&Object.hasOwnProperty.call(t,"register_pk")&&u.hbb.RegisterPk.encode(t.register_pk,n.uint32(122).fork()).ldelim(),t.register_pk_response!=null&&Object.hasOwnProperty.call(t,"register_pk_response")&&u.hbb.RegisterPkResponse.encode(t.register_pk_response,n.uint32(130).fork()).ldelim(),t.software_update!=null&&Object.hasOwnProperty.call(t,"software_update")&&u.hbb.SoftwareUpdate.encode(t.software_update,n.uint32(138).fork()).ldelim(),t.request_relay!=null&&Object.hasOwnProperty.call(t,"request_relay")&&u.hbb.RequestRelay.encode(t.request_relay,n.uint32(146).fork()).ldelim(),t.relay_response!=null&&Object.hasOwnProperty.call(t,"relay_response")&&u.hbb.RelayResponse.encode(t.relay_response,n.uint32(154).fork()).ldelim(),t.test_nat_request!=null&&Object.hasOwnProperty.call(t,"test_nat_request")&&u.hbb.TestNatRequest.encode(t.test_nat_request,n.uint32(162).fork()).ldelim(),t.test_nat_response!=null&&Object.hasOwnProperty.call(t,"test_nat_response")&&u.hbb.TestNatResponse.encode(t.test_nat_response,n.uint32(170).fork()).ldelim(),t.peer_discovery!=null&&Object.hasOwnProperty.call(t,"peer_discovery")&&u.hbb.PeerDiscovery.encode(t.peer_discovery,n.uint32(178).fork()).ldelim(),t.online_request!=null&&Object.hasOwnProperty.call(t,"online_request")&&u.hbb.OnlineRequest.encode(t.online_request,n.uint32(186).fork()).ldelim(),t.online_response!=null&&Object.hasOwnProperty.call(t,"online_response")&&u.hbb.OnlineResponse.encode(t.online_response,n.uint32(194).fork()).ldelim(),t.key_exchange!=null&&Object.hasOwnProperty.call(t,"key_exchange")&&u.hbb.KeyExchange.encode(t.key_exchange,n.uint32(202).fork()).ldelim(),t.hc!=null&&Object.hasOwnProperty.call(t,"hc")&&u.hbb.HealthCheck.encode(t.hc,n.uint32(210).fork()).ldelim(),t.http_proxy_request!=null&&Object.hasOwnProperty.call(t,"http_proxy_request")&&u.hbb.HttpProxyRequest.encode(t.http_proxy_request,n.uint32(218).fork()).ldelim(),t.http_proxy_response!=null&&Object.hasOwnProperty.call(t,"http_proxy_response")&&u.hbb.HttpProxyResponse.encode(t.http_proxy_response,n.uint32(226).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.RendezvousMessage;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 6:{c.register_peer=u.hbb.RegisterPeer.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.register_peer_response=u.hbb.RegisterPeerResponse.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.punch_hole_request=u.hbb.PunchHoleRequest.decode(t,t.uint32(),void 0,f+1);break}case 9:{c.punch_hole=u.hbb.PunchHole.decode(t,t.uint32(),void 0,f+1);break}case 10:{c.punch_hole_sent=u.hbb.PunchHoleSent.decode(t,t.uint32(),void 0,f+1);break}case 11:{c.punch_hole_response=u.hbb.PunchHoleResponse.decode(t,t.uint32(),void 0,f+1);break}case 12:{c.fetch_local_addr=u.hbb.FetchLocalAddr.decode(t,t.uint32(),void 0,f+1);break}case 13:{c.local_addr=u.hbb.LocalAddr.decode(t,t.uint32(),void 0,f+1);break}case 14:{c.configure_update=u.hbb.ConfigUpdate.decode(t,t.uint32(),void 0,f+1);break}case 15:{c.register_pk=u.hbb.RegisterPk.decode(t,t.uint32(),void 0,f+1);break}case 16:{c.register_pk_response=u.hbb.RegisterPkResponse.decode(t,t.uint32(),void 0,f+1);break}case 17:{c.software_update=u.hbb.SoftwareUpdate.decode(t,t.uint32(),void 0,f+1);break}case 18:{c.request_relay=u.hbb.RequestRelay.decode(t,t.uint32(),void 0,f+1);break}case 19:{c.relay_response=u.hbb.RelayResponse.decode(t,t.uint32(),void 0,f+1);break}case 20:{c.test_nat_request=u.hbb.TestNatRequest.decode(t,t.uint32(),void 0,f+1);break}case 21:{c.test_nat_response=u.hbb.TestNatResponse.decode(t,t.uint32(),void 0,f+1);break}case 22:{c.peer_discovery=u.hbb.PeerDiscovery.decode(t,t.uint32(),void 0,f+1);break}case 23:{c.online_request=u.hbb.OnlineRequest.decode(t,t.uint32(),void 0,f+1);break}case 24:{c.online_response=u.hbb.OnlineResponse.decode(t,t.uint32(),void 0,f+1);break}case 25:{c.key_exchange=u.hbb.KeyExchange.decode(t,t.uint32(),void 0,f+1);break}case 26:{c.hc=u.hbb.HealthCheck.decode(t,t.uint32(),void 0,f+1);break}case 27:{c.http_proxy_request=u.hbb.HttpProxyRequest.decode(t,t.uint32(),void 0,f+1);break}case 28:{c.http_proxy_response=u.hbb.HttpProxyResponse.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.register_peer!=null&&t.hasOwnProperty("register_peer")){r.union=1;{let f=u.hbb.RegisterPeer.verify(t.register_peer,n+1);if(f)return"register_peer."+f}}if(t.register_peer_response!=null&&t.hasOwnProperty("register_peer_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RegisterPeerResponse.verify(t.register_peer_response,n+1);if(f)return"register_peer_response."+f}}if(t.punch_hole_request!=null&&t.hasOwnProperty("punch_hole_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PunchHoleRequest.verify(t.punch_hole_request,n+1);if(f)return"punch_hole_request."+f}}if(t.punch_hole!=null&&t.hasOwnProperty("punch_hole")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PunchHole.verify(t.punch_hole,n+1);if(f)return"punch_hole."+f}}if(t.punch_hole_sent!=null&&t.hasOwnProperty("punch_hole_sent")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PunchHoleSent.verify(t.punch_hole_sent,n+1);if(f)return"punch_hole_sent."+f}}if(t.punch_hole_response!=null&&t.hasOwnProperty("punch_hole_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PunchHoleResponse.verify(t.punch_hole_response,n+1);if(f)return"punch_hole_response."+f}}if(t.fetch_local_addr!=null&&t.hasOwnProperty("fetch_local_addr")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FetchLocalAddr.verify(t.fetch_local_addr,n+1);if(f)return"fetch_local_addr."+f}}if(t.local_addr!=null&&t.hasOwnProperty("local_addr")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.LocalAddr.verify(t.local_addr,n+1);if(f)return"local_addr."+f}}if(t.configure_update!=null&&t.hasOwnProperty("configure_update")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ConfigUpdate.verify(t.configure_update,n+1);if(f)return"configure_update."+f}}if(t.register_pk!=null&&t.hasOwnProperty("register_pk")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RegisterPk.verify(t.register_pk,n+1);if(f)return"register_pk."+f}}if(t.register_pk_response!=null&&t.hasOwnProperty("register_pk_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RegisterPkResponse.verify(t.register_pk_response,n+1);if(f)return"register_pk_response."+f}}if(t.software_update!=null&&t.hasOwnProperty("software_update")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SoftwareUpdate.verify(t.software_update,n+1);if(f)return"software_update."+f}}if(t.request_relay!=null&&t.hasOwnProperty("request_relay")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RequestRelay.verify(t.request_relay,n+1);if(f)return"request_relay."+f}}if(t.relay_response!=null&&t.hasOwnProperty("relay_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RelayResponse.verify(t.relay_response,n+1);if(f)return"relay_response."+f}}if(t.test_nat_request!=null&&t.hasOwnProperty("test_nat_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TestNatRequest.verify(t.test_nat_request,n+1);if(f)return"test_nat_request."+f}}if(t.test_nat_response!=null&&t.hasOwnProperty("test_nat_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TestNatResponse.verify(t.test_nat_response,n+1);if(f)return"test_nat_response."+f}}if(t.peer_discovery!=null&&t.hasOwnProperty("peer_discovery")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PeerDiscovery.verify(t.peer_discovery,n+1);if(f)return"peer_discovery."+f}}if(t.online_request!=null&&t.hasOwnProperty("online_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.OnlineRequest.verify(t.online_request,n+1);if(f)return"online_request."+f}}if(t.online_response!=null&&t.hasOwnProperty("online_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.OnlineResponse.verify(t.online_response,n+1);if(f)return"online_response."+f}}if(t.key_exchange!=null&&t.hasOwnProperty("key_exchange")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.KeyExchange.verify(t.key_exchange,n+1);if(f)return"key_exchange."+f}}if(t.hc!=null&&t.hasOwnProperty("hc")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.HealthCheck.verify(t.hc,n+1);if(f)return"hc."+f}}if(t.http_proxy_request!=null&&t.hasOwnProperty("http_proxy_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.HttpProxyRequest.verify(t.http_proxy_request,n+1);if(f)return"http_proxy_request."+f}}if(t.http_proxy_response!=null&&t.hasOwnProperty("http_proxy_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.HttpProxyResponse.verify(t.http_proxy_response,n+1);if(f)return"http_proxy_response."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.RendezvousMessage)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.RendezvousMessage;if(t.register_peer!=null){if(typeof t.register_peer!="object")throw TypeError(".hbb.RendezvousMessage.register_peer: object expected");r.register_peer=u.hbb.RegisterPeer.fromObject(t.register_peer,n+1)}if(t.register_peer_response!=null){if(typeof t.register_peer_response!="object")throw TypeError(".hbb.RendezvousMessage.register_peer_response: object expected");r.register_peer_response=u.hbb.RegisterPeerResponse.fromObject(t.register_peer_response,n+1)}if(t.punch_hole_request!=null){if(typeof t.punch_hole_request!="object")throw TypeError(".hbb.RendezvousMessage.punch_hole_request: object expected");r.punch_hole_request=u.hbb.PunchHoleRequest.fromObject(t.punch_hole_request,n+1)}if(t.punch_hole!=null){if(typeof t.punch_hole!="object")throw TypeError(".hbb.RendezvousMessage.punch_hole: object expected");r.punch_hole=u.hbb.PunchHole.fromObject(t.punch_hole,n+1)}if(t.punch_hole_sent!=null){if(typeof t.punch_hole_sent!="object")throw TypeError(".hbb.RendezvousMessage.punch_hole_sent: object expected");r.punch_hole_sent=u.hbb.PunchHoleSent.fromObject(t.punch_hole_sent,n+1)}if(t.punch_hole_response!=null){if(typeof t.punch_hole_response!="object")throw TypeError(".hbb.RendezvousMessage.punch_hole_response: object expected");r.punch_hole_response=u.hbb.PunchHoleResponse.fromObject(t.punch_hole_response,n+1)}if(t.fetch_local_addr!=null){if(typeof t.fetch_local_addr!="object")throw TypeError(".hbb.RendezvousMessage.fetch_local_addr: object expected");r.fetch_local_addr=u.hbb.FetchLocalAddr.fromObject(t.fetch_local_addr,n+1)}if(t.local_addr!=null){if(typeof t.local_addr!="object")throw TypeError(".hbb.RendezvousMessage.local_addr: object expected");r.local_addr=u.hbb.LocalAddr.fromObject(t.local_addr,n+1)}if(t.configure_update!=null){if(typeof t.configure_update!="object")throw TypeError(".hbb.RendezvousMessage.configure_update: object expected");r.configure_update=u.hbb.ConfigUpdate.fromObject(t.configure_update,n+1)}if(t.register_pk!=null){if(typeof t.register_pk!="object")throw TypeError(".hbb.RendezvousMessage.register_pk: object expected");r.register_pk=u.hbb.RegisterPk.fromObject(t.register_pk,n+1)}if(t.register_pk_response!=null){if(typeof t.register_pk_response!="object")throw TypeError(".hbb.RendezvousMessage.register_pk_response: object expected");r.register_pk_response=u.hbb.RegisterPkResponse.fromObject(t.register_pk_response,n+1)}if(t.software_update!=null){if(typeof t.software_update!="object")throw TypeError(".hbb.RendezvousMessage.software_update: object expected");r.software_update=u.hbb.SoftwareUpdate.fromObject(t.software_update,n+1)}if(t.request_relay!=null){if(typeof t.request_relay!="object")throw TypeError(".hbb.RendezvousMessage.request_relay: object expected");r.request_relay=u.hbb.RequestRelay.fromObject(t.request_relay,n+1)}if(t.relay_response!=null){if(typeof t.relay_response!="object")throw TypeError(".hbb.RendezvousMessage.relay_response: object expected");r.relay_response=u.hbb.RelayResponse.fromObject(t.relay_response,n+1)}if(t.test_nat_request!=null){if(typeof t.test_nat_request!="object")throw TypeError(".hbb.RendezvousMessage.test_nat_request: object expected");r.test_nat_request=u.hbb.TestNatRequest.fromObject(t.test_nat_request,n+1)}if(t.test_nat_response!=null){if(typeof t.test_nat_response!="object")throw TypeError(".hbb.RendezvousMessage.test_nat_response: object expected");r.test_nat_response=u.hbb.TestNatResponse.fromObject(t.test_nat_response,n+1)}if(t.peer_discovery!=null){if(typeof t.peer_discovery!="object")throw TypeError(".hbb.RendezvousMessage.peer_discovery: object expected");r.peer_discovery=u.hbb.PeerDiscovery.fromObject(t.peer_discovery,n+1)}if(t.online_request!=null){if(typeof t.online_request!="object")throw TypeError(".hbb.RendezvousMessage.online_request: object expected");r.online_request=u.hbb.OnlineRequest.fromObject(t.online_request,n+1)}if(t.online_response!=null){if(typeof t.online_response!="object")throw TypeError(".hbb.RendezvousMessage.online_response: object expected");r.online_response=u.hbb.OnlineResponse.fromObject(t.online_response,n+1)}if(t.key_exchange!=null){if(typeof t.key_exchange!="object")throw TypeError(".hbb.RendezvousMessage.key_exchange: object expected");r.key_exchange=u.hbb.KeyExchange.fromObject(t.key_exchange,n+1)}if(t.hc!=null){if(typeof t.hc!="object")throw TypeError(".hbb.RendezvousMessage.hc: object expected");r.hc=u.hbb.HealthCheck.fromObject(t.hc,n+1)}if(t.http_proxy_request!=null){if(typeof t.http_proxy_request!="object")throw TypeError(".hbb.RendezvousMessage.http_proxy_request: object expected");r.http_proxy_request=u.hbb.HttpProxyRequest.fromObject(t.http_proxy_request,n+1)}if(t.http_proxy_response!=null){if(typeof t.http_proxy_response!="object")throw TypeError(".hbb.RendezvousMessage.http_proxy_response: object expected");r.http_proxy_response=u.hbb.HttpProxyResponse.fromObject(t.http_proxy_response,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.register_peer!=null&&t.hasOwnProperty("register_peer")&&(r.register_peer=u.hbb.RegisterPeer.toObject(t.register_peer,n),n.oneofs&&(r.union="register_peer")),t.register_peer_response!=null&&t.hasOwnProperty("register_peer_response")&&(r.register_peer_response=u.hbb.RegisterPeerResponse.toObject(t.register_peer_response,n),n.oneofs&&(r.union="register_peer_response")),t.punch_hole_request!=null&&t.hasOwnProperty("punch_hole_request")&&(r.punch_hole_request=u.hbb.PunchHoleRequest.toObject(t.punch_hole_request,n),n.oneofs&&(r.union="punch_hole_request")),t.punch_hole!=null&&t.hasOwnProperty("punch_hole")&&(r.punch_hole=u.hbb.PunchHole.toObject(t.punch_hole,n),n.oneofs&&(r.union="punch_hole")),t.punch_hole_sent!=null&&t.hasOwnProperty("punch_hole_sent")&&(r.punch_hole_sent=u.hbb.PunchHoleSent.toObject(t.punch_hole_sent,n),n.oneofs&&(r.union="punch_hole_sent")),t.punch_hole_response!=null&&t.hasOwnProperty("punch_hole_response")&&(r.punch_hole_response=u.hbb.PunchHoleResponse.toObject(t.punch_hole_response,n),n.oneofs&&(r.union="punch_hole_response")),t.fetch_local_addr!=null&&t.hasOwnProperty("fetch_local_addr")&&(r.fetch_local_addr=u.hbb.FetchLocalAddr.toObject(t.fetch_local_addr,n),n.oneofs&&(r.union="fetch_local_addr")),t.local_addr!=null&&t.hasOwnProperty("local_addr")&&(r.local_addr=u.hbb.LocalAddr.toObject(t.local_addr,n),n.oneofs&&(r.union="local_addr")),t.configure_update!=null&&t.hasOwnProperty("configure_update")&&(r.configure_update=u.hbb.ConfigUpdate.toObject(t.configure_update,n),n.oneofs&&(r.union="configure_update")),t.register_pk!=null&&t.hasOwnProperty("register_pk")&&(r.register_pk=u.hbb.RegisterPk.toObject(t.register_pk,n),n.oneofs&&(r.union="register_pk")),t.register_pk_response!=null&&t.hasOwnProperty("register_pk_response")&&(r.register_pk_response=u.hbb.RegisterPkResponse.toObject(t.register_pk_response,n),n.oneofs&&(r.union="register_pk_response")),t.software_update!=null&&t.hasOwnProperty("software_update")&&(r.software_update=u.hbb.SoftwareUpdate.toObject(t.software_update,n),n.oneofs&&(r.union="software_update")),t.request_relay!=null&&t.hasOwnProperty("request_relay")&&(r.request_relay=u.hbb.RequestRelay.toObject(t.request_relay,n),n.oneofs&&(r.union="request_relay")),t.relay_response!=null&&t.hasOwnProperty("relay_response")&&(r.relay_response=u.hbb.RelayResponse.toObject(t.relay_response,n),n.oneofs&&(r.union="relay_response")),t.test_nat_request!=null&&t.hasOwnProperty("test_nat_request")&&(r.test_nat_request=u.hbb.TestNatRequest.toObject(t.test_nat_request,n),n.oneofs&&(r.union="test_nat_request")),t.test_nat_response!=null&&t.hasOwnProperty("test_nat_response")&&(r.test_nat_response=u.hbb.TestNatResponse.toObject(t.test_nat_response,n),n.oneofs&&(r.union="test_nat_response")),t.peer_discovery!=null&&t.hasOwnProperty("peer_discovery")&&(r.peer_discovery=u.hbb.PeerDiscovery.toObject(t.peer_discovery,n),n.oneofs&&(r.union="peer_discovery")),t.online_request!=null&&t.hasOwnProperty("online_request")&&(r.online_request=u.hbb.OnlineRequest.toObject(t.online_request,n),n.oneofs&&(r.union="online_request")),t.online_response!=null&&t.hasOwnProperty("online_response")&&(r.online_response=u.hbb.OnlineResponse.toObject(t.online_response,n),n.oneofs&&(r.union="online_response")),t.key_exchange!=null&&t.hasOwnProperty("key_exchange")&&(r.key_exchange=u.hbb.KeyExchange.toObject(t.key_exchange,n),n.oneofs&&(r.union="key_exchange")),t.hc!=null&&t.hasOwnProperty("hc")&&(r.hc=u.hbb.HealthCheck.toObject(t.hc,n),n.oneofs&&(r.union="hc")),t.http_proxy_request!=null&&t.hasOwnProperty("http_proxy_request")&&(r.http_proxy_request=u.hbb.HttpProxyRequest.toObject(t.http_proxy_request,n),n.oneofs&&(r.union="http_proxy_request")),t.http_proxy_response!=null&&t.hasOwnProperty("http_proxy_response")&&(r.http_proxy_response=u.hbb.HttpProxyResponse.toObject(t.http_proxy_response,n),n.oneofs&&(r.union="http_proxy_response")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.RendezvousMessage"},i}(),p.EncodedVideoFrame=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.data=l.newBuffer([]),i.prototype.key=!1,i.prototype.pts=l.Long?l.Long.fromBits(0,0,!1):0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&t.uint32(10).bytes(e.data),e.key!=null&&Object.hasOwnProperty.call(e,"key")&&t.uint32(16).bool(e.key),e.pts!=null&&Object.hasOwnProperty.call(e,"pts")&&t.uint32(24).int64(e.pts),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.EncodedVideoFrame;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.data=e.bytes();break}case 2:{d.key=e.bool();break}case 3:{d.pts=e.int64();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||l.isString(e.data))?"data: buffer expected":e.key!=null&&e.hasOwnProperty("key")&&typeof e.key!="boolean"?"key: boolean expected":e.pts!=null&&e.hasOwnProperty("pts")&&!l.isInteger(e.pts)&&!(e.pts&&l.isInteger(e.pts.low)&&l.isInteger(e.pts.high))?"pts: integer|Long expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.EncodedVideoFrame)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.EncodedVideoFrame;return e.data!=null&&(typeof e.data=="string"?l.base64.decode(e.data,n.data=l.newBuffer(l.base64.length(e.data)),0):e.data.length>=0&&(n.data=e.data)),e.key!=null&&(n.key=!!e.key),e.pts!=null&&(l.Long?(n.pts=l.Long.fromValue(e.pts)).unsigned=!1:typeof e.pts=="string"?n.pts=parseInt(e.pts,10):typeof e.pts=="number"?n.pts=e.pts:typeof e.pts=="object"&&(n.pts=new l.LongBits(e.pts.low>>>0,e.pts.high>>>0).toNumber())),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults)if(t.bytes===String?n.data="":(n.data=[],t.bytes!==Array&&(n.data=l.newBuffer(n.data))),n.key=!1,l.Long){let r=new l.Long(0,0,!1);n.pts=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.pts=t.longs===String?"0":0;return e.data!=null&&e.hasOwnProperty("data")&&(n.data=t.bytes===String?l.base64.encode(e.data,0,e.data.length):t.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.key!=null&&e.hasOwnProperty("key")&&(n.key=e.key),e.pts!=null&&e.hasOwnProperty("pts")&&(typeof e.pts=="number"?n.pts=t.longs===String?String(e.pts):e.pts:n.pts=t.longs===String?l.Long.prototype.toString.call(e.pts):t.longs===Number?new l.LongBits(e.pts.low>>>0,e.pts.high>>>0).toNumber():e.pts),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.EncodedVideoFrame"},i}(),p.EncodedVideoFrames=function(){function i(o){if(this.frames=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.frames=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.frames!=null&&e.frames.length)for(let n=0;n<e.frames.length;++n)u.hbb.EncodedVideoFrame.encode(e.frames[n],t.uint32(10).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.EncodedVideoFrames;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.frames&&d.frames.length||(d.frames=[]),d.frames.push(u.hbb.EncodedVideoFrame.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.frames!=null&&e.hasOwnProperty("frames")){if(!Array.isArray(e.frames))return"frames: array expected";for(let n=0;n<e.frames.length;++n){let r=u.hbb.EncodedVideoFrame.verify(e.frames[n],t+1);if(r)return"frames."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.EncodedVideoFrames)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.EncodedVideoFrames;if(e.frames){if(!Array.isArray(e.frames))throw TypeError(".hbb.EncodedVideoFrames.frames: array expected");n.frames=[];for(let r=0;r<e.frames.length;++r){if(typeof e.frames[r]!="object")throw TypeError(".hbb.EncodedVideoFrames.frames: object expected");n.frames[r]=u.hbb.EncodedVideoFrame.fromObject(e.frames[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.frames=[]),e.frames&&e.frames.length){n.frames=[];for(let r=0;r<e.frames.length;++r)n.frames[r]=u.hbb.EncodedVideoFrame.toObject(e.frames[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.EncodedVideoFrames"},i}(),p.RGB=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.compress=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&t.uint32(8).bool(e.compress),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.RGB;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.compress=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.RGB)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.RGB;return e.compress!=null&&(n.compress=!!e.compress),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.compress=!1),e.compress!=null&&e.hasOwnProperty("compress")&&(n.compress=e.compress),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.RGB"},i}(),p.YUV=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.compress=!1,i.prototype.stride=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&t.uint32(8).bool(e.compress),e.stride!=null&&Object.hasOwnProperty.call(e,"stride")&&t.uint32(16).int32(e.stride),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.YUV;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.compress=e.bool();break}case 2:{d.stride=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":e.stride!=null&&e.hasOwnProperty("stride")&&!l.isInteger(e.stride)?"stride: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.YUV)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.YUV;return e.compress!=null&&(n.compress=!!e.compress),e.stride!=null&&(n.stride=e.stride|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.compress=!1,n.stride=0),e.compress!=null&&e.hasOwnProperty("compress")&&(n.compress=e.compress),e.stride!=null&&e.hasOwnProperty("stride")&&(n.stride=e.stride),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.YUV"},i}(),p.Chroma=function(){let i={},o=Object.create(i);return o[i[0]="I420"]=0,o[i[1]="I444"]=1,o}(),p.VideoFrame=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.vp9s=null,i.prototype.rgb=null,i.prototype.yuv=null,i.prototype.h264s=null,i.prototype.h265s=null,i.prototype.vp8s=null,i.prototype.av1s=null,i.prototype.display=0;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["vp9s","rgb","yuv","h264s","h265s","vp8s","av1s"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.vp9s!=null&&Object.hasOwnProperty.call(t,"vp9s")&&u.hbb.EncodedVideoFrames.encode(t.vp9s,n.uint32(50).fork()).ldelim(),t.rgb!=null&&Object.hasOwnProperty.call(t,"rgb")&&u.hbb.RGB.encode(t.rgb,n.uint32(58).fork()).ldelim(),t.yuv!=null&&Object.hasOwnProperty.call(t,"yuv")&&u.hbb.YUV.encode(t.yuv,n.uint32(66).fork()).ldelim(),t.h264s!=null&&Object.hasOwnProperty.call(t,"h264s")&&u.hbb.EncodedVideoFrames.encode(t.h264s,n.uint32(82).fork()).ldelim(),t.h265s!=null&&Object.hasOwnProperty.call(t,"h265s")&&u.hbb.EncodedVideoFrames.encode(t.h265s,n.uint32(90).fork()).ldelim(),t.vp8s!=null&&Object.hasOwnProperty.call(t,"vp8s")&&u.hbb.EncodedVideoFrames.encode(t.vp8s,n.uint32(98).fork()).ldelim(),t.av1s!=null&&Object.hasOwnProperty.call(t,"av1s")&&u.hbb.EncodedVideoFrames.encode(t.av1s,n.uint32(106).fork()).ldelim(),t.display!=null&&Object.hasOwnProperty.call(t,"display")&&n.uint32(112).int32(t.display),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.VideoFrame;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 6:{c.vp9s=u.hbb.EncodedVideoFrames.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.rgb=u.hbb.RGB.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.yuv=u.hbb.YUV.decode(t,t.uint32(),void 0,f+1);break}case 10:{c.h264s=u.hbb.EncodedVideoFrames.decode(t,t.uint32(),void 0,f+1);break}case 11:{c.h265s=u.hbb.EncodedVideoFrames.decode(t,t.uint32(),void 0,f+1);break}case 12:{c.vp8s=u.hbb.EncodedVideoFrames.decode(t,t.uint32(),void 0,f+1);break}case 13:{c.av1s=u.hbb.EncodedVideoFrames.decode(t,t.uint32(),void 0,f+1);break}case 14:{c.display=t.int32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.vp9s!=null&&t.hasOwnProperty("vp9s")){r.union=1;{let f=u.hbb.EncodedVideoFrames.verify(t.vp9s,n+1);if(f)return"vp9s."+f}}if(t.rgb!=null&&t.hasOwnProperty("rgb")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.RGB.verify(t.rgb,n+1);if(f)return"rgb."+f}}if(t.yuv!=null&&t.hasOwnProperty("yuv")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.YUV.verify(t.yuv,n+1);if(f)return"yuv."+f}}if(t.h264s!=null&&t.hasOwnProperty("h264s")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.EncodedVideoFrames.verify(t.h264s,n+1);if(f)return"h264s."+f}}if(t.h265s!=null&&t.hasOwnProperty("h265s")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.EncodedVideoFrames.verify(t.h265s,n+1);if(f)return"h265s."+f}}if(t.vp8s!=null&&t.hasOwnProperty("vp8s")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.EncodedVideoFrames.verify(t.vp8s,n+1);if(f)return"vp8s."+f}}if(t.av1s!=null&&t.hasOwnProperty("av1s")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.EncodedVideoFrames.verify(t.av1s,n+1);if(f)return"av1s."+f}}return t.display!=null&&t.hasOwnProperty("display")&&!l.isInteger(t.display)?"display: integer expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.VideoFrame)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.VideoFrame;if(t.vp9s!=null){if(typeof t.vp9s!="object")throw TypeError(".hbb.VideoFrame.vp9s: object expected");r.vp9s=u.hbb.EncodedVideoFrames.fromObject(t.vp9s,n+1)}if(t.rgb!=null){if(typeof t.rgb!="object")throw TypeError(".hbb.VideoFrame.rgb: object expected");r.rgb=u.hbb.RGB.fromObject(t.rgb,n+1)}if(t.yuv!=null){if(typeof t.yuv!="object")throw TypeError(".hbb.VideoFrame.yuv: object expected");r.yuv=u.hbb.YUV.fromObject(t.yuv,n+1)}if(t.h264s!=null){if(typeof t.h264s!="object")throw TypeError(".hbb.VideoFrame.h264s: object expected");r.h264s=u.hbb.EncodedVideoFrames.fromObject(t.h264s,n+1)}if(t.h265s!=null){if(typeof t.h265s!="object")throw TypeError(".hbb.VideoFrame.h265s: object expected");r.h265s=u.hbb.EncodedVideoFrames.fromObject(t.h265s,n+1)}if(t.vp8s!=null){if(typeof t.vp8s!="object")throw TypeError(".hbb.VideoFrame.vp8s: object expected");r.vp8s=u.hbb.EncodedVideoFrames.fromObject(t.vp8s,n+1)}if(t.av1s!=null){if(typeof t.av1s!="object")throw TypeError(".hbb.VideoFrame.av1s: object expected");r.av1s=u.hbb.EncodedVideoFrames.fromObject(t.av1s,n+1)}return t.display!=null&&(r.display=t.display|0),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(r.display=0),t.vp9s!=null&&t.hasOwnProperty("vp9s")&&(r.vp9s=u.hbb.EncodedVideoFrames.toObject(t.vp9s,n),n.oneofs&&(r.union="vp9s")),t.rgb!=null&&t.hasOwnProperty("rgb")&&(r.rgb=u.hbb.RGB.toObject(t.rgb,n),n.oneofs&&(r.union="rgb")),t.yuv!=null&&t.hasOwnProperty("yuv")&&(r.yuv=u.hbb.YUV.toObject(t.yuv,n),n.oneofs&&(r.union="yuv")),t.h264s!=null&&t.hasOwnProperty("h264s")&&(r.h264s=u.hbb.EncodedVideoFrames.toObject(t.h264s,n),n.oneofs&&(r.union="h264s")),t.h265s!=null&&t.hasOwnProperty("h265s")&&(r.h265s=u.hbb.EncodedVideoFrames.toObject(t.h265s,n),n.oneofs&&(r.union="h265s")),t.vp8s!=null&&t.hasOwnProperty("vp8s")&&(r.vp8s=u.hbb.EncodedVideoFrames.toObject(t.vp8s,n),n.oneofs&&(r.union="vp8s")),t.av1s!=null&&t.hasOwnProperty("av1s")&&(r.av1s=u.hbb.EncodedVideoFrames.toObject(t.av1s,n),n.oneofs&&(r.union="av1s")),t.display!=null&&t.hasOwnProperty("display")&&(r.display=t.display),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.VideoFrame"},i}(),p.IdPk=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.pk=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.pk!=null&&Object.hasOwnProperty.call(e,"pk")&&t.uint32(18).bytes(e.pk),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.IdPk;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.pk=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.pk!=null&&e.hasOwnProperty("pk")&&!(e.pk&&typeof e.pk.length=="number"||l.isString(e.pk))?"pk: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.IdPk)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.IdPk;return e.id!=null&&(n.id=String(e.id)),e.pk!=null&&(typeof e.pk=="string"?l.base64.decode(e.pk,n.pk=l.newBuffer(l.base64.length(e.pk)),0):e.pk.length>=0&&(n.pk=e.pk)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",t.bytes===String?n.pk="":(n.pk=[],t.bytes!==Array&&(n.pk=l.newBuffer(n.pk)))),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.pk!=null&&e.hasOwnProperty("pk")&&(n.pk=t.bytes===String?l.base64.encode(e.pk,0,e.pk.length):t.bytes===Array?Array.prototype.slice.call(e.pk):e.pk),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.IdPk"},i}(),p.DisplayInfo=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.x=0,i.prototype.y=0,i.prototype.width=0,i.prototype.height=0,i.prototype.name="",i.prototype.online=!1,i.prototype.cursor_embedded=!1,i.prototype.original_resolution=null,i.prototype.scale=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(8).sint32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(16).sint32(e.y),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(24).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(32).int32(e.height),e.name!=null&&Object.hasOwnProperty.call(e,"name")&&t.uint32(42).string(e.name),e.online!=null&&Object.hasOwnProperty.call(e,"online")&&t.uint32(48).bool(e.online),e.cursor_embedded!=null&&Object.hasOwnProperty.call(e,"cursor_embedded")&&t.uint32(56).bool(e.cursor_embedded),e.original_resolution!=null&&Object.hasOwnProperty.call(e,"original_resolution")&&u.hbb.Resolution.encode(e.original_resolution,t.uint32(66).fork()).ldelim(),e.scale!=null&&Object.hasOwnProperty.call(e,"scale")&&t.uint32(73).double(e.scale),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.DisplayInfo;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.x=e.sint32();break}case 2:{d.y=e.sint32();break}case 3:{d.width=e.int32();break}case 4:{d.height=e.int32();break}case 5:{d.name=e.string();break}case 6:{d.online=e.bool();break}case 7:{d.cursor_embedded=e.bool();break}case 8:{d.original_resolution=u.hbb.Resolution.decode(e,e.uint32(),void 0,r+1);break}case 9:{d.scale=e.double();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x))return"x: integer expected";if(e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y))return"y: integer expected";if(e.width!=null&&e.hasOwnProperty("width")&&!l.isInteger(e.width))return"width: integer expected";if(e.height!=null&&e.hasOwnProperty("height")&&!l.isInteger(e.height))return"height: integer expected";if(e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name))return"name: string expected";if(e.online!=null&&e.hasOwnProperty("online")&&typeof e.online!="boolean")return"online: boolean expected";if(e.cursor_embedded!=null&&e.hasOwnProperty("cursor_embedded")&&typeof e.cursor_embedded!="boolean")return"cursor_embedded: boolean expected";if(e.original_resolution!=null&&e.hasOwnProperty("original_resolution")){let n=u.hbb.Resolution.verify(e.original_resolution,t+1);if(n)return"original_resolution."+n}return e.scale!=null&&e.hasOwnProperty("scale")&&typeof e.scale!="number"?"scale: number expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.DisplayInfo)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.DisplayInfo;if(e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),e.width!=null&&(n.width=e.width|0),e.height!=null&&(n.height=e.height|0),e.name!=null&&(n.name=String(e.name)),e.online!=null&&(n.online=!!e.online),e.cursor_embedded!=null&&(n.cursor_embedded=!!e.cursor_embedded),e.original_resolution!=null){if(typeof e.original_resolution!="object")throw TypeError(".hbb.DisplayInfo.original_resolution: object expected");n.original_resolution=u.hbb.Resolution.fromObject(e.original_resolution,t+1)}return e.scale!=null&&(n.scale=Number(e.scale)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.x=0,n.y=0,n.width=0,n.height=0,n.name="",n.online=!1,n.cursor_embedded=!1,n.original_resolution=null,n.scale=0),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),e.width!=null&&e.hasOwnProperty("width")&&(n.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(n.height=e.height),e.name!=null&&e.hasOwnProperty("name")&&(n.name=e.name),e.online!=null&&e.hasOwnProperty("online")&&(n.online=e.online),e.cursor_embedded!=null&&e.hasOwnProperty("cursor_embedded")&&(n.cursor_embedded=e.cursor_embedded),e.original_resolution!=null&&e.hasOwnProperty("original_resolution")&&(n.original_resolution=u.hbb.Resolution.toObject(e.original_resolution,t)),e.scale!=null&&e.hasOwnProperty("scale")&&(n.scale=t.json&&!isFinite(e.scale)?String(e.scale):e.scale),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.DisplayInfo"},i}(),p.PortForward=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.host="",i.prototype.port=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.host!=null&&Object.hasOwnProperty.call(e,"host")&&t.uint32(10).string(e.host),e.port!=null&&Object.hasOwnProperty.call(e,"port")&&t.uint32(16).int32(e.port),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PortForward;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.host=e.string();break}case 2:{d.port=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.host!=null&&e.hasOwnProperty("host")&&!l.isString(e.host)?"host: string expected":e.port!=null&&e.hasOwnProperty("port")&&!l.isInteger(e.port)?"port: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.PortForward)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PortForward;return e.host!=null&&(n.host=String(e.host)),e.port!=null&&(n.port=e.port|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.host="",n.port=0),e.host!=null&&e.hasOwnProperty("host")&&(n.host=e.host),e.port!=null&&e.hasOwnProperty("port")&&(n.port=e.port),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PortForward"},i}(),p.FileTransfer=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.dir="",i.prototype.show_hidden=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.dir!=null&&Object.hasOwnProperty.call(e,"dir")&&t.uint32(10).string(e.dir),e.show_hidden!=null&&Object.hasOwnProperty.call(e,"show_hidden")&&t.uint32(16).bool(e.show_hidden),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransfer;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.dir=e.string();break}case 2:{d.show_hidden=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.dir!=null&&e.hasOwnProperty("dir")&&!l.isString(e.dir)?"dir: string expected":e.show_hidden!=null&&e.hasOwnProperty("show_hidden")&&typeof e.show_hidden!="boolean"?"show_hidden: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransfer)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransfer;return e.dir!=null&&(n.dir=String(e.dir)),e.show_hidden!=null&&(n.show_hidden=!!e.show_hidden),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.dir="",n.show_hidden=!1),e.dir!=null&&e.hasOwnProperty("dir")&&(n.dir=e.dir),e.show_hidden!=null&&e.hasOwnProperty("show_hidden")&&(n.show_hidden=e.show_hidden),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransfer"},i}(),p.ViewCamera=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ViewCamera;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ViewCamera)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");return new u.hbb.ViewCamera},i.toObject=function(){return{}},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ViewCamera"},i}(),p.OSLogin=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.username="",i.prototype.password="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.username!=null&&Object.hasOwnProperty.call(e,"username")&&t.uint32(10).string(e.username),e.password!=null&&Object.hasOwnProperty.call(e,"password")&&t.uint32(18).string(e.password),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.OSLogin;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.username=e.string();break}case 2:{d.password=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.username!=null&&e.hasOwnProperty("username")&&!l.isString(e.username)?"username: string expected":e.password!=null&&e.hasOwnProperty("password")&&!l.isString(e.password)?"password: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.OSLogin)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.OSLogin;return e.username!=null&&(n.username=String(e.username)),e.password!=null&&(n.password=String(e.password)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.username="",n.password=""),e.username!=null&&e.hasOwnProperty("username")&&(n.username=e.username),e.password!=null&&e.hasOwnProperty("password")&&(n.password=e.password),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.OSLogin"},i}(),p.LoginRequest=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.username="",i.prototype.password=l.newBuffer([]),i.prototype.my_id="",i.prototype.my_name="",i.prototype.option=null,i.prototype.file_transfer=null,i.prototype.port_forward=null,i.prototype.view_camera=null,i.prototype.video_ack_required=!1,i.prototype.session_id=l.Long?l.Long.fromBits(0,0,!0):0,i.prototype.version="",i.prototype.os_login=null,i.prototype.my_platform="",i.prototype.hwid=l.newBuffer([]);let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["file_transfer","port_forward","view_camera"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.username!=null&&Object.hasOwnProperty.call(t,"username")&&n.uint32(10).string(t.username),t.password!=null&&Object.hasOwnProperty.call(t,"password")&&n.uint32(18).bytes(t.password),t.my_id!=null&&Object.hasOwnProperty.call(t,"my_id")&&n.uint32(34).string(t.my_id),t.my_name!=null&&Object.hasOwnProperty.call(t,"my_name")&&n.uint32(42).string(t.my_name),t.option!=null&&Object.hasOwnProperty.call(t,"option")&&u.hbb.OptionMessage.encode(t.option,n.uint32(50).fork()).ldelim(),t.file_transfer!=null&&Object.hasOwnProperty.call(t,"file_transfer")&&u.hbb.FileTransfer.encode(t.file_transfer,n.uint32(58).fork()).ldelim(),t.port_forward!=null&&Object.hasOwnProperty.call(t,"port_forward")&&u.hbb.PortForward.encode(t.port_forward,n.uint32(66).fork()).ldelim(),t.video_ack_required!=null&&Object.hasOwnProperty.call(t,"video_ack_required")&&n.uint32(72).bool(t.video_ack_required),t.session_id!=null&&Object.hasOwnProperty.call(t,"session_id")&&n.uint32(80).uint64(t.session_id),t.version!=null&&Object.hasOwnProperty.call(t,"version")&&n.uint32(90).string(t.version),t.os_login!=null&&Object.hasOwnProperty.call(t,"os_login")&&u.hbb.OSLogin.encode(t.os_login,n.uint32(98).fork()).ldelim(),t.my_platform!=null&&Object.hasOwnProperty.call(t,"my_platform")&&n.uint32(106).string(t.my_platform),t.hwid!=null&&Object.hasOwnProperty.call(t,"hwid")&&n.uint32(114).bytes(t.hwid),t.view_camera!=null&&Object.hasOwnProperty.call(t,"view_camera")&&u.hbb.ViewCamera.encode(t.view_camera,n.uint32(122).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.LoginRequest;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.username=t.string();break}case 2:{c.password=t.bytes();break}case 4:{c.my_id=t.string();break}case 5:{c.my_name=t.string();break}case 6:{c.option=u.hbb.OptionMessage.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.file_transfer=u.hbb.FileTransfer.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.port_forward=u.hbb.PortForward.decode(t,t.uint32(),void 0,f+1);break}case 15:{c.view_camera=u.hbb.ViewCamera.decode(t,t.uint32(),void 0,f+1);break}case 9:{c.video_ack_required=t.bool();break}case 10:{c.session_id=t.uint64();break}case 11:{c.version=t.string();break}case 12:{c.os_login=u.hbb.OSLogin.decode(t,t.uint32(),void 0,f+1);break}case 13:{c.my_platform=t.string();break}case 14:{c.hwid=t.bytes();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.username!=null&&t.hasOwnProperty("username")&&!l.isString(t.username))return"username: string expected";if(t.password!=null&&t.hasOwnProperty("password")&&!(t.password&&typeof t.password.length=="number"||l.isString(t.password)))return"password: buffer expected";if(t.my_id!=null&&t.hasOwnProperty("my_id")&&!l.isString(t.my_id))return"my_id: string expected";if(t.my_name!=null&&t.hasOwnProperty("my_name")&&!l.isString(t.my_name))return"my_name: string expected";if(t.option!=null&&t.hasOwnProperty("option")){let f=u.hbb.OptionMessage.verify(t.option,n+1);if(f)return"option."+f}if(t.file_transfer!=null&&t.hasOwnProperty("file_transfer")){r.union=1;{let f=u.hbb.FileTransfer.verify(t.file_transfer,n+1);if(f)return"file_transfer."+f}}if(t.port_forward!=null&&t.hasOwnProperty("port_forward")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PortForward.verify(t.port_forward,n+1);if(f)return"port_forward."+f}}if(t.view_camera!=null&&t.hasOwnProperty("view_camera")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ViewCamera.verify(t.view_camera,n+1);if(f)return"view_camera."+f}}if(t.video_ack_required!=null&&t.hasOwnProperty("video_ack_required")&&typeof t.video_ack_required!="boolean")return"video_ack_required: boolean expected";if(t.session_id!=null&&t.hasOwnProperty("session_id")&&!l.isInteger(t.session_id)&&!(t.session_id&&l.isInteger(t.session_id.low)&&l.isInteger(t.session_id.high)))return"session_id: integer|Long expected";if(t.version!=null&&t.hasOwnProperty("version")&&!l.isString(t.version))return"version: string expected";if(t.os_login!=null&&t.hasOwnProperty("os_login")){let f=u.hbb.OSLogin.verify(t.os_login,n+1);if(f)return"os_login."+f}return t.my_platform!=null&&t.hasOwnProperty("my_platform")&&!l.isString(t.my_platform)?"my_platform: string expected":t.hwid!=null&&t.hasOwnProperty("hwid")&&!(t.hwid&&typeof t.hwid.length=="number"||l.isString(t.hwid))?"hwid: buffer expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.LoginRequest)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.LoginRequest;if(t.username!=null&&(r.username=String(t.username)),t.password!=null&&(typeof t.password=="string"?l.base64.decode(t.password,r.password=l.newBuffer(l.base64.length(t.password)),0):t.password.length>=0&&(r.password=t.password)),t.my_id!=null&&(r.my_id=String(t.my_id)),t.my_name!=null&&(r.my_name=String(t.my_name)),t.option!=null){if(typeof t.option!="object")throw TypeError(".hbb.LoginRequest.option: object expected");r.option=u.hbb.OptionMessage.fromObject(t.option,n+1)}if(t.file_transfer!=null){if(typeof t.file_transfer!="object")throw TypeError(".hbb.LoginRequest.file_transfer: object expected");r.file_transfer=u.hbb.FileTransfer.fromObject(t.file_transfer,n+1)}if(t.port_forward!=null){if(typeof t.port_forward!="object")throw TypeError(".hbb.LoginRequest.port_forward: object expected");r.port_forward=u.hbb.PortForward.fromObject(t.port_forward,n+1)}if(t.view_camera!=null){if(typeof t.view_camera!="object")throw TypeError(".hbb.LoginRequest.view_camera: object expected");r.view_camera=u.hbb.ViewCamera.fromObject(t.view_camera,n+1)}if(t.video_ack_required!=null&&(r.video_ack_required=!!t.video_ack_required),t.session_id!=null&&(l.Long?(r.session_id=l.Long.fromValue(t.session_id)).unsigned=!0:typeof t.session_id=="string"?r.session_id=parseInt(t.session_id,10):typeof t.session_id=="number"?r.session_id=t.session_id:typeof t.session_id=="object"&&(r.session_id=new l.LongBits(t.session_id.low>>>0,t.session_id.high>>>0).toNumber(!0))),t.version!=null&&(r.version=String(t.version)),t.os_login!=null){if(typeof t.os_login!="object")throw TypeError(".hbb.LoginRequest.os_login: object expected");r.os_login=u.hbb.OSLogin.fromObject(t.os_login,n+1)}return t.my_platform!=null&&(r.my_platform=String(t.my_platform)),t.hwid!=null&&(typeof t.hwid=="string"?l.base64.decode(t.hwid,r.hwid=l.newBuffer(l.base64.length(t.hwid)),0):t.hwid.length>=0&&(r.hwid=t.hwid)),r},i.toObject=function(t,n){n||(n={});let r={};if(n.defaults){if(r.username="",n.bytes===String?r.password="":(r.password=[],n.bytes!==Array&&(r.password=l.newBuffer(r.password))),r.my_id="",r.my_name="",r.option=null,r.video_ack_required=!1,l.Long){let f=new l.Long(0,0,!0);r.session_id=n.longs===String?f.toString():n.longs===Number?f.toNumber():f}else r.session_id=n.longs===String?"0":0;r.version="",r.os_login=null,r.my_platform="",n.bytes===String?r.hwid="":(r.hwid=[],n.bytes!==Array&&(r.hwid=l.newBuffer(r.hwid)))}return t.username!=null&&t.hasOwnProperty("username")&&(r.username=t.username),t.password!=null&&t.hasOwnProperty("password")&&(r.password=n.bytes===String?l.base64.encode(t.password,0,t.password.length):n.bytes===Array?Array.prototype.slice.call(t.password):t.password),t.my_id!=null&&t.hasOwnProperty("my_id")&&(r.my_id=t.my_id),t.my_name!=null&&t.hasOwnProperty("my_name")&&(r.my_name=t.my_name),t.option!=null&&t.hasOwnProperty("option")&&(r.option=u.hbb.OptionMessage.toObject(t.option,n)),t.file_transfer!=null&&t.hasOwnProperty("file_transfer")&&(r.file_transfer=u.hbb.FileTransfer.toObject(t.file_transfer,n),n.oneofs&&(r.union="file_transfer")),t.port_forward!=null&&t.hasOwnProperty("port_forward")&&(r.port_forward=u.hbb.PortForward.toObject(t.port_forward,n),n.oneofs&&(r.union="port_forward")),t.video_ack_required!=null&&t.hasOwnProperty("video_ack_required")&&(r.video_ack_required=t.video_ack_required),t.session_id!=null&&t.hasOwnProperty("session_id")&&(typeof t.session_id=="number"?r.session_id=n.longs===String?String(t.session_id):t.session_id:r.session_id=n.longs===String?l.Long.prototype.toString.call(t.session_id):n.longs===Number?new l.LongBits(t.session_id.low>>>0,t.session_id.high>>>0).toNumber(!0):t.session_id),t.version!=null&&t.hasOwnProperty("version")&&(r.version=t.version),t.os_login!=null&&t.hasOwnProperty("os_login")&&(r.os_login=u.hbb.OSLogin.toObject(t.os_login,n)),t.my_platform!=null&&t.hasOwnProperty("my_platform")&&(r.my_platform=t.my_platform),t.hwid!=null&&t.hasOwnProperty("hwid")&&(r.hwid=n.bytes===String?l.base64.encode(t.hwid,0,t.hwid.length):n.bytes===Array?Array.prototype.slice.call(t.hwid):t.hwid),t.view_camera!=null&&t.hasOwnProperty("view_camera")&&(r.view_camera=u.hbb.ViewCamera.toObject(t.view_camera,n),n.oneofs&&(r.union="view_camera")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.LoginRequest"},i}(),p.Auth2FA=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.code="",i.prototype.hwid=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.code!=null&&Object.hasOwnProperty.call(e,"code")&&t.uint32(10).string(e.code),e.hwid!=null&&Object.hasOwnProperty.call(e,"hwid")&&t.uint32(18).bytes(e.hwid),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.Auth2FA;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.code=e.string();break}case 2:{d.hwid=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.code!=null&&e.hasOwnProperty("code")&&!l.isString(e.code)?"code: string expected":e.hwid!=null&&e.hasOwnProperty("hwid")&&!(e.hwid&&typeof e.hwid.length=="number"||l.isString(e.hwid))?"hwid: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.Auth2FA)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.Auth2FA;return e.code!=null&&(n.code=String(e.code)),e.hwid!=null&&(typeof e.hwid=="string"?l.base64.decode(e.hwid,n.hwid=l.newBuffer(l.base64.length(e.hwid)),0):e.hwid.length>=0&&(n.hwid=e.hwid)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.code="",t.bytes===String?n.hwid="":(n.hwid=[],t.bytes!==Array&&(n.hwid=l.newBuffer(n.hwid)))),e.code!=null&&e.hasOwnProperty("code")&&(n.code=e.code),e.hwid!=null&&e.hasOwnProperty("hwid")&&(n.hwid=t.bytes===String?l.base64.encode(e.hwid,0,e.hwid.length):t.bytes===Array?Array.prototype.slice.call(e.hwid):e.hwid),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.Auth2FA"},i}(),p.ChatMessage=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.text="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.text!=null&&Object.hasOwnProperty.call(e,"text")&&t.uint32(10).string(e.text),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ChatMessage;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.text=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.text!=null&&e.hasOwnProperty("text")&&!l.isString(e.text)?"text: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ChatMessage)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ChatMessage;return e.text!=null&&(n.text=String(e.text)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.text=""),e.text!=null&&e.hasOwnProperty("text")&&(n.text=e.text),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ChatMessage"},i}(),p.Features=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.privacy_mode=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.privacy_mode!=null&&Object.hasOwnProperty.call(e,"privacy_mode")&&t.uint32(8).bool(e.privacy_mode),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.Features;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.privacy_mode=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.privacy_mode!=null&&e.hasOwnProperty("privacy_mode")&&typeof e.privacy_mode!="boolean"?"privacy_mode: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.Features)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.Features;return e.privacy_mode!=null&&(n.privacy_mode=!!e.privacy_mode),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.privacy_mode=!1),e.privacy_mode!=null&&e.hasOwnProperty("privacy_mode")&&(n.privacy_mode=e.privacy_mode),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.Features"},i}(),p.CodecAbility=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.vp8=!1,i.prototype.vp9=!1,i.prototype.av1=!1,i.prototype.h264=!1,i.prototype.h265=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.vp8!=null&&Object.hasOwnProperty.call(e,"vp8")&&t.uint32(8).bool(e.vp8),e.vp9!=null&&Object.hasOwnProperty.call(e,"vp9")&&t.uint32(16).bool(e.vp9),e.av1!=null&&Object.hasOwnProperty.call(e,"av1")&&t.uint32(24).bool(e.av1),e.h264!=null&&Object.hasOwnProperty.call(e,"h264")&&t.uint32(32).bool(e.h264),e.h265!=null&&Object.hasOwnProperty.call(e,"h265")&&t.uint32(40).bool(e.h265),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CodecAbility;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.vp8=e.bool();break}case 2:{d.vp9=e.bool();break}case 3:{d.av1=e.bool();break}case 4:{d.h264=e.bool();break}case 5:{d.h265=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.vp8!=null&&e.hasOwnProperty("vp8")&&typeof e.vp8!="boolean"?"vp8: boolean expected":e.vp9!=null&&e.hasOwnProperty("vp9")&&typeof e.vp9!="boolean"?"vp9: boolean expected":e.av1!=null&&e.hasOwnProperty("av1")&&typeof e.av1!="boolean"?"av1: boolean expected":e.h264!=null&&e.hasOwnProperty("h264")&&typeof e.h264!="boolean"?"h264: boolean expected":e.h265!=null&&e.hasOwnProperty("h265")&&typeof e.h265!="boolean"?"h265: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CodecAbility)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CodecAbility;return e.vp8!=null&&(n.vp8=!!e.vp8),e.vp9!=null&&(n.vp9=!!e.vp9),e.av1!=null&&(n.av1=!!e.av1),e.h264!=null&&(n.h264=!!e.h264),e.h265!=null&&(n.h265=!!e.h265),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.vp8=!1,n.vp9=!1,n.av1=!1,n.h264=!1,n.h265=!1),e.vp8!=null&&e.hasOwnProperty("vp8")&&(n.vp8=e.vp8),e.vp9!=null&&e.hasOwnProperty("vp9")&&(n.vp9=e.vp9),e.av1!=null&&e.hasOwnProperty("av1")&&(n.av1=e.av1),e.h264!=null&&e.hasOwnProperty("h264")&&(n.h264=e.h264),e.h265!=null&&e.hasOwnProperty("h265")&&(n.h265=e.h265),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CodecAbility"},i}(),p.SupportedEncoding=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.h264=!1,i.prototype.h265=!1,i.prototype.vp8=!1,i.prototype.av1=!1,i.prototype.i444=null,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.h264!=null&&Object.hasOwnProperty.call(e,"h264")&&t.uint32(8).bool(e.h264),e.h265!=null&&Object.hasOwnProperty.call(e,"h265")&&t.uint32(16).bool(e.h265),e.vp8!=null&&Object.hasOwnProperty.call(e,"vp8")&&t.uint32(24).bool(e.vp8),e.av1!=null&&Object.hasOwnProperty.call(e,"av1")&&t.uint32(32).bool(e.av1),e.i444!=null&&Object.hasOwnProperty.call(e,"i444")&&u.hbb.CodecAbility.encode(e.i444,t.uint32(42).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SupportedEncoding;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.h264=e.bool();break}case 2:{d.h265=e.bool();break}case 3:{d.vp8=e.bool();break}case 4:{d.av1=e.bool();break}case 5:{d.i444=u.hbb.CodecAbility.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.h264!=null&&e.hasOwnProperty("h264")&&typeof e.h264!="boolean")return"h264: boolean expected";if(e.h265!=null&&e.hasOwnProperty("h265")&&typeof e.h265!="boolean")return"h265: boolean expected";if(e.vp8!=null&&e.hasOwnProperty("vp8")&&typeof e.vp8!="boolean")return"vp8: boolean expected";if(e.av1!=null&&e.hasOwnProperty("av1")&&typeof e.av1!="boolean")return"av1: boolean expected";if(e.i444!=null&&e.hasOwnProperty("i444")){let n=u.hbb.CodecAbility.verify(e.i444,t+1);if(n)return"i444."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.SupportedEncoding)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SupportedEncoding;if(e.h264!=null&&(n.h264=!!e.h264),e.h265!=null&&(n.h265=!!e.h265),e.vp8!=null&&(n.vp8=!!e.vp8),e.av1!=null&&(n.av1=!!e.av1),e.i444!=null){if(typeof e.i444!="object")throw TypeError(".hbb.SupportedEncoding.i444: object expected");n.i444=u.hbb.CodecAbility.fromObject(e.i444,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.h264=!1,n.h265=!1,n.vp8=!1,n.av1=!1,n.i444=null),e.h264!=null&&e.hasOwnProperty("h264")&&(n.h264=e.h264),e.h265!=null&&e.hasOwnProperty("h265")&&(n.h265=e.h265),e.vp8!=null&&e.hasOwnProperty("vp8")&&(n.vp8=e.vp8),e.av1!=null&&e.hasOwnProperty("av1")&&(n.av1=e.av1),e.i444!=null&&e.hasOwnProperty("i444")&&(n.i444=u.hbb.CodecAbility.toObject(e.i444,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SupportedEncoding"},i}(),p.PeerInfo=function(){function i(o){if(this.displays=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.username="",i.prototype.hostname="",i.prototype.platform="",i.prototype.displays=l.emptyArray,i.prototype.current_display=0,i.prototype.sas_enabled=!1,i.prototype.version="",i.prototype.features=null,i.prototype.encoding=null,i.prototype.resolutions=null,i.prototype.platform_additions="",i.prototype.windows_sessions=null,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.username!=null&&Object.hasOwnProperty.call(e,"username")&&t.uint32(10).string(e.username),e.hostname!=null&&Object.hasOwnProperty.call(e,"hostname")&&t.uint32(18).string(e.hostname),e.platform!=null&&Object.hasOwnProperty.call(e,"platform")&&t.uint32(26).string(e.platform),e.displays!=null&&e.displays.length)for(let n=0;n<e.displays.length;++n)u.hbb.DisplayInfo.encode(e.displays[n],t.uint32(34).fork()).ldelim();return e.current_display!=null&&Object.hasOwnProperty.call(e,"current_display")&&t.uint32(40).int32(e.current_display),e.sas_enabled!=null&&Object.hasOwnProperty.call(e,"sas_enabled")&&t.uint32(48).bool(e.sas_enabled),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&t.uint32(58).string(e.version),e.features!=null&&Object.hasOwnProperty.call(e,"features")&&u.hbb.Features.encode(e.features,t.uint32(74).fork()).ldelim(),e.encoding!=null&&Object.hasOwnProperty.call(e,"encoding")&&u.hbb.SupportedEncoding.encode(e.encoding,t.uint32(82).fork()).ldelim(),e.resolutions!=null&&Object.hasOwnProperty.call(e,"resolutions")&&u.hbb.SupportedResolutions.encode(e.resolutions,t.uint32(90).fork()).ldelim(),e.platform_additions!=null&&Object.hasOwnProperty.call(e,"platform_additions")&&t.uint32(98).string(e.platform_additions),e.windows_sessions!=null&&Object.hasOwnProperty.call(e,"windows_sessions")&&u.hbb.WindowsSessions.encode(e.windows_sessions,t.uint32(106).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PeerInfo;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.username=e.string();break}case 2:{d.hostname=e.string();break}case 3:{d.platform=e.string();break}case 4:{d.displays&&d.displays.length||(d.displays=[]),d.displays.push(u.hbb.DisplayInfo.decode(e,e.uint32(),void 0,r+1));break}case 5:{d.current_display=e.int32();break}case 6:{d.sas_enabled=e.bool();break}case 7:{d.version=e.string();break}case 9:{d.features=u.hbb.Features.decode(e,e.uint32(),void 0,r+1);break}case 10:{d.encoding=u.hbb.SupportedEncoding.decode(e,e.uint32(),void 0,r+1);break}case 11:{d.resolutions=u.hbb.SupportedResolutions.decode(e,e.uint32(),void 0,r+1);break}case 12:{d.platform_additions=e.string();break}case 13:{d.windows_sessions=u.hbb.WindowsSessions.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.username!=null&&e.hasOwnProperty("username")&&!l.isString(e.username))return"username: string expected";if(e.hostname!=null&&e.hasOwnProperty("hostname")&&!l.isString(e.hostname))return"hostname: string expected";if(e.platform!=null&&e.hasOwnProperty("platform")&&!l.isString(e.platform))return"platform: string expected";if(e.displays!=null&&e.hasOwnProperty("displays")){if(!Array.isArray(e.displays))return"displays: array expected";for(let n=0;n<e.displays.length;++n){let r=u.hbb.DisplayInfo.verify(e.displays[n],t+1);if(r)return"displays."+r}}if(e.current_display!=null&&e.hasOwnProperty("current_display")&&!l.isInteger(e.current_display))return"current_display: integer expected";if(e.sas_enabled!=null&&e.hasOwnProperty("sas_enabled")&&typeof e.sas_enabled!="boolean")return"sas_enabled: boolean expected";if(e.version!=null&&e.hasOwnProperty("version")&&!l.isString(e.version))return"version: string expected";if(e.features!=null&&e.hasOwnProperty("features")){let n=u.hbb.Features.verify(e.features,t+1);if(n)return"features."+n}if(e.encoding!=null&&e.hasOwnProperty("encoding")){let n=u.hbb.SupportedEncoding.verify(e.encoding,t+1);if(n)return"encoding."+n}if(e.resolutions!=null&&e.hasOwnProperty("resolutions")){let n=u.hbb.SupportedResolutions.verify(e.resolutions,t+1);if(n)return"resolutions."+n}if(e.platform_additions!=null&&e.hasOwnProperty("platform_additions")&&!l.isString(e.platform_additions))return"platform_additions: string expected";if(e.windows_sessions!=null&&e.hasOwnProperty("windows_sessions")){let n=u.hbb.WindowsSessions.verify(e.windows_sessions,t+1);if(n)return"windows_sessions."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.PeerInfo)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PeerInfo;if(e.username!=null&&(n.username=String(e.username)),e.hostname!=null&&(n.hostname=String(e.hostname)),e.platform!=null&&(n.platform=String(e.platform)),e.displays){if(!Array.isArray(e.displays))throw TypeError(".hbb.PeerInfo.displays: array expected");n.displays=[];for(let r=0;r<e.displays.length;++r){if(typeof e.displays[r]!="object")throw TypeError(".hbb.PeerInfo.displays: object expected");n.displays[r]=u.hbb.DisplayInfo.fromObject(e.displays[r],t+1)}}if(e.current_display!=null&&(n.current_display=e.current_display|0),e.sas_enabled!=null&&(n.sas_enabled=!!e.sas_enabled),e.version!=null&&(n.version=String(e.version)),e.features!=null){if(typeof e.features!="object")throw TypeError(".hbb.PeerInfo.features: object expected");n.features=u.hbb.Features.fromObject(e.features,t+1)}if(e.encoding!=null){if(typeof e.encoding!="object")throw TypeError(".hbb.PeerInfo.encoding: object expected");n.encoding=u.hbb.SupportedEncoding.fromObject(e.encoding,t+1)}if(e.resolutions!=null){if(typeof e.resolutions!="object")throw TypeError(".hbb.PeerInfo.resolutions: object expected");n.resolutions=u.hbb.SupportedResolutions.fromObject(e.resolutions,t+1)}if(e.platform_additions!=null&&(n.platform_additions=String(e.platform_additions)),e.windows_sessions!=null){if(typeof e.windows_sessions!="object")throw TypeError(".hbb.PeerInfo.windows_sessions: object expected");n.windows_sessions=u.hbb.WindowsSessions.fromObject(e.windows_sessions,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.displays=[]),t.defaults&&(n.username="",n.hostname="",n.platform="",n.current_display=0,n.sas_enabled=!1,n.version="",n.features=null,n.encoding=null,n.resolutions=null,n.platform_additions="",n.windows_sessions=null),e.username!=null&&e.hasOwnProperty("username")&&(n.username=e.username),e.hostname!=null&&e.hasOwnProperty("hostname")&&(n.hostname=e.hostname),e.platform!=null&&e.hasOwnProperty("platform")&&(n.platform=e.platform),e.displays&&e.displays.length){n.displays=[];for(let r=0;r<e.displays.length;++r)n.displays[r]=u.hbb.DisplayInfo.toObject(e.displays[r],t)}return e.current_display!=null&&e.hasOwnProperty("current_display")&&(n.current_display=e.current_display),e.sas_enabled!=null&&e.hasOwnProperty("sas_enabled")&&(n.sas_enabled=e.sas_enabled),e.version!=null&&e.hasOwnProperty("version")&&(n.version=e.version),e.features!=null&&e.hasOwnProperty("features")&&(n.features=u.hbb.Features.toObject(e.features,t)),e.encoding!=null&&e.hasOwnProperty("encoding")&&(n.encoding=u.hbb.SupportedEncoding.toObject(e.encoding,t)),e.resolutions!=null&&e.hasOwnProperty("resolutions")&&(n.resolutions=u.hbb.SupportedResolutions.toObject(e.resolutions,t)),e.platform_additions!=null&&e.hasOwnProperty("platform_additions")&&(n.platform_additions=e.platform_additions),e.windows_sessions!=null&&e.hasOwnProperty("windows_sessions")&&(n.windows_sessions=u.hbb.WindowsSessions.toObject(e.windows_sessions,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PeerInfo"},i}(),p.WindowsSession=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.sid=0,i.prototype.name="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.sid!=null&&Object.hasOwnProperty.call(e,"sid")&&t.uint32(8).uint32(e.sid),e.name!=null&&Object.hasOwnProperty.call(e,"name")&&t.uint32(18).string(e.name),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.WindowsSession;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.sid=e.uint32();break}case 2:{d.name=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.sid!=null&&e.hasOwnProperty("sid")&&!l.isInteger(e.sid)?"sid: integer expected":e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name)?"name: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.WindowsSession)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.WindowsSession;return e.sid!=null&&(n.sid=e.sid>>>0),e.name!=null&&(n.name=String(e.name)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.sid=0,n.name=""),e.sid!=null&&e.hasOwnProperty("sid")&&(n.sid=e.sid),e.name!=null&&e.hasOwnProperty("name")&&(n.name=e.name),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.WindowsSession"},i}(),p.LoginResponse=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.error=null,i.prototype.peer_info=null,i.prototype.enable_trusted_devices=!1;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["error","peer_info"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.error!=null&&Object.hasOwnProperty.call(t,"error")&&n.uint32(10).string(t.error),t.peer_info!=null&&Object.hasOwnProperty.call(t,"peer_info")&&u.hbb.PeerInfo.encode(t.peer_info,n.uint32(18).fork()).ldelim(),t.enable_trusted_devices!=null&&Object.hasOwnProperty.call(t,"enable_trusted_devices")&&n.uint32(24).bool(t.enable_trusted_devices),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.LoginResponse;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.error=t.string();break}case 2:{c.peer_info=u.hbb.PeerInfo.decode(t,t.uint32(),void 0,f+1);break}case 3:{c.enable_trusted_devices=t.bool();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.error!=null&&t.hasOwnProperty("error")&&(r.union=1,!l.isString(t.error)))return"error: string expected";if(t.peer_info!=null&&t.hasOwnProperty("peer_info")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PeerInfo.verify(t.peer_info,n+1);if(f)return"peer_info."+f}}return t.enable_trusted_devices!=null&&t.hasOwnProperty("enable_trusted_devices")&&typeof t.enable_trusted_devices!="boolean"?"enable_trusted_devices: boolean expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.LoginResponse)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.LoginResponse;if(t.error!=null&&(r.error=String(t.error)),t.peer_info!=null){if(typeof t.peer_info!="object")throw TypeError(".hbb.LoginResponse.peer_info: object expected");r.peer_info=u.hbb.PeerInfo.fromObject(t.peer_info,n+1)}return t.enable_trusted_devices!=null&&(r.enable_trusted_devices=!!t.enable_trusted_devices),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(r.enable_trusted_devices=!1),t.error!=null&&t.hasOwnProperty("error")&&(r.error=t.error,n.oneofs&&(r.union="error")),t.peer_info!=null&&t.hasOwnProperty("peer_info")&&(r.peer_info=u.hbb.PeerInfo.toObject(t.peer_info,n),n.oneofs&&(r.union="peer_info")),t.enable_trusted_devices!=null&&t.hasOwnProperty("enable_trusted_devices")&&(r.enable_trusted_devices=t.enable_trusted_devices),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.LoginResponse"},i}(),p.TouchScaleUpdate=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.scale=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.scale!=null&&Object.hasOwnProperty.call(e,"scale")&&t.uint32(8).int32(e.scale),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TouchScaleUpdate;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.scale=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.scale!=null&&e.hasOwnProperty("scale")&&!l.isInteger(e.scale)?"scale: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TouchScaleUpdate)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TouchScaleUpdate;return e.scale!=null&&(n.scale=e.scale|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.scale=0),e.scale!=null&&e.hasOwnProperty("scale")&&(n.scale=e.scale),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TouchScaleUpdate"},i}(),p.TouchPanStart=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.x=0,i.prototype.y=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(8).int32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(16).int32(e.y),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TouchPanStart;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.x=e.int32();break}case 2:{d.y=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x)?"x: integer expected":e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y)?"y: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TouchPanStart)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TouchPanStart;return e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.x=0,n.y=0),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TouchPanStart"},i}(),p.TouchPanUpdate=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.x=0,i.prototype.y=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(8).int32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(16).int32(e.y),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TouchPanUpdate;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.x=e.int32();break}case 2:{d.y=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x)?"x: integer expected":e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y)?"y: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TouchPanUpdate)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TouchPanUpdate;return e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.x=0,n.y=0),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TouchPanUpdate"},i}(),p.TouchPanEnd=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.x=0,i.prototype.y=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(8).int32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(16).int32(e.y),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TouchPanEnd;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.x=e.int32();break}case 2:{d.y=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x)?"x: integer expected":e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y)?"y: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TouchPanEnd)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TouchPanEnd;return e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.x=0,n.y=0),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TouchPanEnd"},i}(),p.TouchEvent=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.scale_update=null,i.prototype.pan_start=null,i.prototype.pan_update=null,i.prototype.pan_end=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["scale_update","pan_start","pan_update","pan_end"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.scale_update!=null&&Object.hasOwnProperty.call(t,"scale_update")&&u.hbb.TouchScaleUpdate.encode(t.scale_update,n.uint32(10).fork()).ldelim(),t.pan_start!=null&&Object.hasOwnProperty.call(t,"pan_start")&&u.hbb.TouchPanStart.encode(t.pan_start,n.uint32(18).fork()).ldelim(),t.pan_update!=null&&Object.hasOwnProperty.call(t,"pan_update")&&u.hbb.TouchPanUpdate.encode(t.pan_update,n.uint32(26).fork()).ldelim(),t.pan_end!=null&&Object.hasOwnProperty.call(t,"pan_end")&&u.hbb.TouchPanEnd.encode(t.pan_end,n.uint32(34).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.TouchEvent;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.scale_update=u.hbb.TouchScaleUpdate.decode(t,t.uint32(),void 0,f+1);break}case 2:{c.pan_start=u.hbb.TouchPanStart.decode(t,t.uint32(),void 0,f+1);break}case 3:{c.pan_update=u.hbb.TouchPanUpdate.decode(t,t.uint32(),void 0,f+1);break}case 4:{c.pan_end=u.hbb.TouchPanEnd.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.scale_update!=null&&t.hasOwnProperty("scale_update")){r.union=1;{let f=u.hbb.TouchScaleUpdate.verify(t.scale_update,n+1);if(f)return"scale_update."+f}}if(t.pan_start!=null&&t.hasOwnProperty("pan_start")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TouchPanStart.verify(t.pan_start,n+1);if(f)return"pan_start."+f}}if(t.pan_update!=null&&t.hasOwnProperty("pan_update")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TouchPanUpdate.verify(t.pan_update,n+1);if(f)return"pan_update."+f}}if(t.pan_end!=null&&t.hasOwnProperty("pan_end")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TouchPanEnd.verify(t.pan_end,n+1);if(f)return"pan_end."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.TouchEvent)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.TouchEvent;if(t.scale_update!=null){if(typeof t.scale_update!="object")throw TypeError(".hbb.TouchEvent.scale_update: object expected");r.scale_update=u.hbb.TouchScaleUpdate.fromObject(t.scale_update,n+1)}if(t.pan_start!=null){if(typeof t.pan_start!="object")throw TypeError(".hbb.TouchEvent.pan_start: object expected");r.pan_start=u.hbb.TouchPanStart.fromObject(t.pan_start,n+1)}if(t.pan_update!=null){if(typeof t.pan_update!="object")throw TypeError(".hbb.TouchEvent.pan_update: object expected");r.pan_update=u.hbb.TouchPanUpdate.fromObject(t.pan_update,n+1)}if(t.pan_end!=null){if(typeof t.pan_end!="object")throw TypeError(".hbb.TouchEvent.pan_end: object expected");r.pan_end=u.hbb.TouchPanEnd.fromObject(t.pan_end,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.scale_update!=null&&t.hasOwnProperty("scale_update")&&(r.scale_update=u.hbb.TouchScaleUpdate.toObject(t.scale_update,n),n.oneofs&&(r.union="scale_update")),t.pan_start!=null&&t.hasOwnProperty("pan_start")&&(r.pan_start=u.hbb.TouchPanStart.toObject(t.pan_start,n),n.oneofs&&(r.union="pan_start")),t.pan_update!=null&&t.hasOwnProperty("pan_update")&&(r.pan_update=u.hbb.TouchPanUpdate.toObject(t.pan_update,n),n.oneofs&&(r.union="pan_update")),t.pan_end!=null&&t.hasOwnProperty("pan_end")&&(r.pan_end=u.hbb.TouchPanEnd.toObject(t.pan_end,n),n.oneofs&&(r.union="pan_end")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.TouchEvent"},i}(),p.PointerDeviceEvent=function(){function i(e){if(this.modifiers=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.touch_event=null,i.prototype.modifiers=l.emptyArray;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["touch_event"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){if(n||(n=S.create()),t.touch_event!=null&&Object.hasOwnProperty.call(t,"touch_event")&&u.hbb.TouchEvent.encode(t.touch_event,n.uint32(10).fork()).ldelim(),t.modifiers!=null&&t.modifiers.length){n.uint32(18).fork();for(let r=0;r<t.modifiers.length;++r)n.int32(t.modifiers[r]);n.ldelim()}return n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.PointerDeviceEvent;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.touch_event=u.hbb.TouchEvent.decode(t,t.uint32(),void 0,f+1);break}case 2:{if(c.modifiers&&c.modifiers.length||(c.modifiers=[]),(k&7)===2){let q=t.uint32()+t.pos;for(;t.pos<q;)c.modifiers.push(t.int32())}else c.modifiers.push(t.int32());break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.touch_event!=null&&t.hasOwnProperty("touch_event")){r.union=1;{let f=u.hbb.TouchEvent.verify(t.touch_event,n+1);if(f)return"touch_event."+f}}if(t.modifiers!=null&&t.hasOwnProperty("modifiers")){if(!Array.isArray(t.modifiers))return"modifiers: array expected";for(let f=0;f<t.modifiers.length;++f)switch(t.modifiers[f]){default:return"modifiers: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 100:case 101:break}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.PointerDeviceEvent)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.PointerDeviceEvent;if(t.touch_event!=null){if(typeof t.touch_event!="object")throw TypeError(".hbb.PointerDeviceEvent.touch_event: object expected");r.touch_event=u.hbb.TouchEvent.fromObject(t.touch_event,n+1)}if(t.modifiers){if(!Array.isArray(t.modifiers))throw TypeError(".hbb.PointerDeviceEvent.modifiers: array expected");r.modifiers=[];for(let f=0;f<t.modifiers.length;++f)switch(t.modifiers[f]){default:if(typeof t.modifiers[f]=="number"){r.modifiers[f]=t.modifiers[f];break}case"Unknown":case 0:r.modifiers[f]=0;break;case"Alt":case 1:r.modifiers[f]=1;break;case"Backspace":case 2:r.modifiers[f]=2;break;case"CapsLock":case 3:r.modifiers[f]=3;break;case"Control":case 4:r.modifiers[f]=4;break;case"Delete":case 5:r.modifiers[f]=5;break;case"DownArrow":case 6:r.modifiers[f]=6;break;case"End":case 7:r.modifiers[f]=7;break;case"Escape":case 8:r.modifiers[f]=8;break;case"F1":case 9:r.modifiers[f]=9;break;case"F10":case 10:r.modifiers[f]=10;break;case"F11":case 11:r.modifiers[f]=11;break;case"F12":case 12:r.modifiers[f]=12;break;case"F2":case 13:r.modifiers[f]=13;break;case"F3":case 14:r.modifiers[f]=14;break;case"F4":case 15:r.modifiers[f]=15;break;case"F5":case 16:r.modifiers[f]=16;break;case"F6":case 17:r.modifiers[f]=17;break;case"F7":case 18:r.modifiers[f]=18;break;case"F8":case 19:r.modifiers[f]=19;break;case"F9":case 20:r.modifiers[f]=20;break;case"Home":case 21:r.modifiers[f]=21;break;case"LeftArrow":case 22:r.modifiers[f]=22;break;case"Meta":case 23:r.modifiers[f]=23;break;case"Option":case 24:r.modifiers[f]=24;break;case"PageDown":case 25:r.modifiers[f]=25;break;case"PageUp":case 26:r.modifiers[f]=26;break;case"Return":case 27:r.modifiers[f]=27;break;case"RightArrow":case 28:r.modifiers[f]=28;break;case"Shift":case 29:r.modifiers[f]=29;break;case"Space":case 30:r.modifiers[f]=30;break;case"Tab":case 31:r.modifiers[f]=31;break;case"UpArrow":case 32:r.modifiers[f]=32;break;case"Numpad0":case 33:r.modifiers[f]=33;break;case"Numpad1":case 34:r.modifiers[f]=34;break;case"Numpad2":case 35:r.modifiers[f]=35;break;case"Numpad3":case 36:r.modifiers[f]=36;break;case"Numpad4":case 37:r.modifiers[f]=37;break;case"Numpad5":case 38:r.modifiers[f]=38;break;case"Numpad6":case 39:r.modifiers[f]=39;break;case"Numpad7":case 40:r.modifiers[f]=40;break;case"Numpad8":case 41:r.modifiers[f]=41;break;case"Numpad9":case 42:r.modifiers[f]=42;break;case"Cancel":case 43:r.modifiers[f]=43;break;case"Clear":case 44:r.modifiers[f]=44;break;case"Menu":case 45:r.modifiers[f]=45;break;case"Pause":case 46:r.modifiers[f]=46;break;case"Kana":case 47:r.modifiers[f]=47;break;case"Hangul":case 48:r.modifiers[f]=48;break;case"Junja":case 49:r.modifiers[f]=49;break;case"Final":case 50:r.modifiers[f]=50;break;case"Hanja":case 51:r.modifiers[f]=51;break;case"Kanji":case 52:r.modifiers[f]=52;break;case"Convert":case 53:r.modifiers[f]=53;break;case"Select":case 54:r.modifiers[f]=54;break;case"Print":case 55:r.modifiers[f]=55;break;case"Execute":case 56:r.modifiers[f]=56;break;case"Snapshot":case 57:r.modifiers[f]=57;break;case"Insert":case 58:r.modifiers[f]=58;break;case"Help":case 59:r.modifiers[f]=59;break;case"Sleep":case 60:r.modifiers[f]=60;break;case"Separator":case 61:r.modifiers[f]=61;break;case"Scroll":case 62:r.modifiers[f]=62;break;case"NumLock":case 63:r.modifiers[f]=63;break;case"RWin":case 64:r.modifiers[f]=64;break;case"Apps":case 65:r.modifiers[f]=65;break;case"Multiply":case 66:r.modifiers[f]=66;break;case"Add":case 67:r.modifiers[f]=67;break;case"Subtract":case 68:r.modifiers[f]=68;break;case"Decimal":case 69:r.modifiers[f]=69;break;case"Divide":case 70:r.modifiers[f]=70;break;case"Equals":case 71:r.modifiers[f]=71;break;case"NumpadEnter":case 72:r.modifiers[f]=72;break;case"RShift":case 73:r.modifiers[f]=73;break;case"RControl":case 74:r.modifiers[f]=74;break;case"RAlt":case 75:r.modifiers[f]=75;break;case"VolumeMute":case 76:r.modifiers[f]=76;break;case"VolumeUp":case 77:r.modifiers[f]=77;break;case"VolumeDown":case 78:r.modifiers[f]=78;break;case"Power":case 79:r.modifiers[f]=79;break;case"CtrlAltDel":case 100:r.modifiers[f]=100;break;case"LockScreen":case 101:r.modifiers[f]=101;break}}return r},i.toObject=function(t,n){n||(n={});let r={};if((n.arrays||n.defaults)&&(r.modifiers=[]),t.touch_event!=null&&t.hasOwnProperty("touch_event")&&(r.touch_event=u.hbb.TouchEvent.toObject(t.touch_event,n),n.oneofs&&(r.union="touch_event")),t.modifiers&&t.modifiers.length){r.modifiers=[];for(let f=0;f<t.modifiers.length;++f)r.modifiers[f]=n.enums===String?u.hbb.ControlKey[t.modifiers[f]]===void 0?t.modifiers[f]:u.hbb.ControlKey[t.modifiers[f]]:t.modifiers[f]}return r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.PointerDeviceEvent"},i}(),p.MouseEvent=function(){function i(o){if(this.modifiers=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.mask=0,i.prototype.x=0,i.prototype.y=0,i.prototype.modifiers=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.mask!=null&&Object.hasOwnProperty.call(e,"mask")&&t.uint32(8).int32(e.mask),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(16).sint32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(24).sint32(e.y),e.modifiers!=null&&e.modifiers.length){t.uint32(34).fork();for(let n=0;n<e.modifiers.length;++n)t.int32(e.modifiers[n]);t.ldelim()}return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.MouseEvent;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.mask=e.int32();break}case 2:{d.x=e.sint32();break}case 3:{d.y=e.sint32();break}case 4:{if(d.modifiers&&d.modifiers.length||(d.modifiers=[]),(c&7)===2){let k=e.uint32()+e.pos;for(;e.pos<k;)d.modifiers.push(e.int32())}else d.modifiers.push(e.int32());break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.mask!=null&&e.hasOwnProperty("mask")&&!l.isInteger(e.mask))return"mask: integer expected";if(e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x))return"x: integer expected";if(e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y))return"y: integer expected";if(e.modifiers!=null&&e.hasOwnProperty("modifiers")){if(!Array.isArray(e.modifiers))return"modifiers: array expected";for(let n=0;n<e.modifiers.length;++n)switch(e.modifiers[n]){default:return"modifiers: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 100:case 101:break}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.MouseEvent)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.MouseEvent;if(e.mask!=null&&(n.mask=e.mask|0),e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),e.modifiers){if(!Array.isArray(e.modifiers))throw TypeError(".hbb.MouseEvent.modifiers: array expected");n.modifiers=[];for(let r=0;r<e.modifiers.length;++r)switch(e.modifiers[r]){default:if(typeof e.modifiers[r]=="number"){n.modifiers[r]=e.modifiers[r];break}case"Unknown":case 0:n.modifiers[r]=0;break;case"Alt":case 1:n.modifiers[r]=1;break;case"Backspace":case 2:n.modifiers[r]=2;break;case"CapsLock":case 3:n.modifiers[r]=3;break;case"Control":case 4:n.modifiers[r]=4;break;case"Delete":case 5:n.modifiers[r]=5;break;case"DownArrow":case 6:n.modifiers[r]=6;break;case"End":case 7:n.modifiers[r]=7;break;case"Escape":case 8:n.modifiers[r]=8;break;case"F1":case 9:n.modifiers[r]=9;break;case"F10":case 10:n.modifiers[r]=10;break;case"F11":case 11:n.modifiers[r]=11;break;case"F12":case 12:n.modifiers[r]=12;break;case"F2":case 13:n.modifiers[r]=13;break;case"F3":case 14:n.modifiers[r]=14;break;case"F4":case 15:n.modifiers[r]=15;break;case"F5":case 16:n.modifiers[r]=16;break;case"F6":case 17:n.modifiers[r]=17;break;case"F7":case 18:n.modifiers[r]=18;break;case"F8":case 19:n.modifiers[r]=19;break;case"F9":case 20:n.modifiers[r]=20;break;case"Home":case 21:n.modifiers[r]=21;break;case"LeftArrow":case 22:n.modifiers[r]=22;break;case"Meta":case 23:n.modifiers[r]=23;break;case"Option":case 24:n.modifiers[r]=24;break;case"PageDown":case 25:n.modifiers[r]=25;break;case"PageUp":case 26:n.modifiers[r]=26;break;case"Return":case 27:n.modifiers[r]=27;break;case"RightArrow":case 28:n.modifiers[r]=28;break;case"Shift":case 29:n.modifiers[r]=29;break;case"Space":case 30:n.modifiers[r]=30;break;case"Tab":case 31:n.modifiers[r]=31;break;case"UpArrow":case 32:n.modifiers[r]=32;break;case"Numpad0":case 33:n.modifiers[r]=33;break;case"Numpad1":case 34:n.modifiers[r]=34;break;case"Numpad2":case 35:n.modifiers[r]=35;break;case"Numpad3":case 36:n.modifiers[r]=36;break;case"Numpad4":case 37:n.modifiers[r]=37;break;case"Numpad5":case 38:n.modifiers[r]=38;break;case"Numpad6":case 39:n.modifiers[r]=39;break;case"Numpad7":case 40:n.modifiers[r]=40;break;case"Numpad8":case 41:n.modifiers[r]=41;break;case"Numpad9":case 42:n.modifiers[r]=42;break;case"Cancel":case 43:n.modifiers[r]=43;break;case"Clear":case 44:n.modifiers[r]=44;break;case"Menu":case 45:n.modifiers[r]=45;break;case"Pause":case 46:n.modifiers[r]=46;break;case"Kana":case 47:n.modifiers[r]=47;break;case"Hangul":case 48:n.modifiers[r]=48;break;case"Junja":case 49:n.modifiers[r]=49;break;case"Final":case 50:n.modifiers[r]=50;break;case"Hanja":case 51:n.modifiers[r]=51;break;case"Kanji":case 52:n.modifiers[r]=52;break;case"Convert":case 53:n.modifiers[r]=53;break;case"Select":case 54:n.modifiers[r]=54;break;case"Print":case 55:n.modifiers[r]=55;break;case"Execute":case 56:n.modifiers[r]=56;break;case"Snapshot":case 57:n.modifiers[r]=57;break;case"Insert":case 58:n.modifiers[r]=58;break;case"Help":case 59:n.modifiers[r]=59;break;case"Sleep":case 60:n.modifiers[r]=60;break;case"Separator":case 61:n.modifiers[r]=61;break;case"Scroll":case 62:n.modifiers[r]=62;break;case"NumLock":case 63:n.modifiers[r]=63;break;case"RWin":case 64:n.modifiers[r]=64;break;case"Apps":case 65:n.modifiers[r]=65;break;case"Multiply":case 66:n.modifiers[r]=66;break;case"Add":case 67:n.modifiers[r]=67;break;case"Subtract":case 68:n.modifiers[r]=68;break;case"Decimal":case 69:n.modifiers[r]=69;break;case"Divide":case 70:n.modifiers[r]=70;break;case"Equals":case 71:n.modifiers[r]=71;break;case"NumpadEnter":case 72:n.modifiers[r]=72;break;case"RShift":case 73:n.modifiers[r]=73;break;case"RControl":case 74:n.modifiers[r]=74;break;case"RAlt":case 75:n.modifiers[r]=75;break;case"VolumeMute":case 76:n.modifiers[r]=76;break;case"VolumeUp":case 77:n.modifiers[r]=77;break;case"VolumeDown":case 78:n.modifiers[r]=78;break;case"Power":case 79:n.modifiers[r]=79;break;case"CtrlAltDel":case 100:n.modifiers[r]=100;break;case"LockScreen":case 101:n.modifiers[r]=101;break}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.modifiers=[]),t.defaults&&(n.mask=0,n.x=0,n.y=0),e.mask!=null&&e.hasOwnProperty("mask")&&(n.mask=e.mask),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),e.modifiers&&e.modifiers.length){n.modifiers=[];for(let r=0;r<e.modifiers.length;++r)n.modifiers[r]=t.enums===String?u.hbb.ControlKey[e.modifiers[r]]===void 0?e.modifiers[r]:u.hbb.ControlKey[e.modifiers[r]]:e.modifiers[r]}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.MouseEvent"},i}(),p.KeyboardMode=function(){let i={},o=Object.create(i);return o[i[0]="Legacy"]=0,o[i[1]="Map"]=1,o[i[2]="Translate"]=2,o[i[3]="Auto"]=3,o}(),p.ControlKey=function(){let i={},o=Object.create(i);return o[i[0]="Unknown"]=0,o[i[1]="Alt"]=1,o[i[2]="Backspace"]=2,o[i[3]="CapsLock"]=3,o[i[4]="Control"]=4,o[i[5]="Delete"]=5,o[i[6]="DownArrow"]=6,o[i[7]="End"]=7,o[i[8]="Escape"]=8,o[i[9]="F1"]=9,o[i[10]="F10"]=10,o[i[11]="F11"]=11,o[i[12]="F12"]=12,o[i[13]="F2"]=13,o[i[14]="F3"]=14,o[i[15]="F4"]=15,o[i[16]="F5"]=16,o[i[17]="F6"]=17,o[i[18]="F7"]=18,o[i[19]="F8"]=19,o[i[20]="F9"]=20,o[i[21]="Home"]=21,o[i[22]="LeftArrow"]=22,o[i[23]="Meta"]=23,o[i[24]="Option"]=24,o[i[25]="PageDown"]=25,o[i[26]="PageUp"]=26,o[i[27]="Return"]=27,o[i[28]="RightArrow"]=28,o[i[29]="Shift"]=29,o[i[30]="Space"]=30,o[i[31]="Tab"]=31,o[i[32]="UpArrow"]=32,o[i[33]="Numpad0"]=33,o[i[34]="Numpad1"]=34,o[i[35]="Numpad2"]=35,o[i[36]="Numpad3"]=36,o[i[37]="Numpad4"]=37,o[i[38]="Numpad5"]=38,o[i[39]="Numpad6"]=39,o[i[40]="Numpad7"]=40,o[i[41]="Numpad8"]=41,o[i[42]="Numpad9"]=42,o[i[43]="Cancel"]=43,o[i[44]="Clear"]=44,o[i[45]="Menu"]=45,o[i[46]="Pause"]=46,o[i[47]="Kana"]=47,o[i[48]="Hangul"]=48,o[i[49]="Junja"]=49,o[i[50]="Final"]=50,o[i[51]="Hanja"]=51,o[i[52]="Kanji"]=52,o[i[53]="Convert"]=53,o[i[54]="Select"]=54,o[i[55]="Print"]=55,o[i[56]="Execute"]=56,o[i[57]="Snapshot"]=57,o[i[58]="Insert"]=58,o[i[59]="Help"]=59,o[i[60]="Sleep"]=60,o[i[61]="Separator"]=61,o[i[62]="Scroll"]=62,o[i[63]="NumLock"]=63,o[i[64]="RWin"]=64,o[i[65]="Apps"]=65,o[i[66]="Multiply"]=66,o[i[67]="Add"]=67,o[i[68]="Subtract"]=68,o[i[69]="Decimal"]=69,o[i[70]="Divide"]=70,o[i[71]="Equals"]=71,o[i[72]="NumpadEnter"]=72,o[i[73]="RShift"]=73,o[i[74]="RControl"]=74,o[i[75]="RAlt"]=75,o[i[76]="VolumeMute"]=76,o[i[77]="VolumeUp"]=77,o[i[78]="VolumeDown"]=78,o[i[79]="Power"]=79,o[i[100]="CtrlAltDel"]=100,o[i[101]="LockScreen"]=101,o}(),p.KeyEvent=function(){function i(e){if(this.modifiers=[],e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.down=!1,i.prototype.press=!1,i.prototype.control_key=null,i.prototype.chr=null,i.prototype.unicode=null,i.prototype.seq=null,i.prototype.win2win_hotkey=null,i.prototype.modifiers=l.emptyArray,i.prototype.mode=0;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["control_key","chr","unicode","seq","win2win_hotkey"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){if(n||(n=S.create()),t.down!=null&&Object.hasOwnProperty.call(t,"down")&&n.uint32(8).bool(t.down),t.press!=null&&Object.hasOwnProperty.call(t,"press")&&n.uint32(16).bool(t.press),t.control_key!=null&&Object.hasOwnProperty.call(t,"control_key")&&n.uint32(24).int32(t.control_key),t.chr!=null&&Object.hasOwnProperty.call(t,"chr")&&n.uint32(32).uint32(t.chr),t.unicode!=null&&Object.hasOwnProperty.call(t,"unicode")&&n.uint32(40).uint32(t.unicode),t.seq!=null&&Object.hasOwnProperty.call(t,"seq")&&n.uint32(50).string(t.seq),t.win2win_hotkey!=null&&Object.hasOwnProperty.call(t,"win2win_hotkey")&&n.uint32(56).uint32(t.win2win_hotkey),t.modifiers!=null&&t.modifiers.length){n.uint32(66).fork();for(let r=0;r<t.modifiers.length;++r)n.int32(t.modifiers[r]);n.ldelim()}return t.mode!=null&&Object.hasOwnProperty.call(t,"mode")&&n.uint32(72).int32(t.mode),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.KeyEvent;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.down=t.bool();break}case 2:{c.press=t.bool();break}case 3:{c.control_key=t.int32();break}case 4:{c.chr=t.uint32();break}case 5:{c.unicode=t.uint32();break}case 6:{c.seq=t.string();break}case 7:{c.win2win_hotkey=t.uint32();break}case 8:{if(c.modifiers&&c.modifiers.length||(c.modifiers=[]),(k&7)===2){let q=t.uint32()+t.pos;for(;t.pos<q;)c.modifiers.push(t.int32())}else c.modifiers.push(t.int32());break}case 9:{c.mode=t.int32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.down!=null&&t.hasOwnProperty("down")&&typeof t.down!="boolean")return"down: boolean expected";if(t.press!=null&&t.hasOwnProperty("press")&&typeof t.press!="boolean")return"press: boolean expected";if(t.control_key!=null&&t.hasOwnProperty("control_key"))switch(r.union=1,t.control_key){default:return"control_key: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 100:case 101:break}if(t.chr!=null&&t.hasOwnProperty("chr")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.chr))return"chr: integer expected"}if(t.unicode!=null&&t.hasOwnProperty("unicode")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.unicode))return"unicode: integer expected"}if(t.seq!=null&&t.hasOwnProperty("seq")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isString(t.seq))return"seq: string expected"}if(t.win2win_hotkey!=null&&t.hasOwnProperty("win2win_hotkey")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.win2win_hotkey))return"win2win_hotkey: integer expected"}if(t.modifiers!=null&&t.hasOwnProperty("modifiers")){if(!Array.isArray(t.modifiers))return"modifiers: array expected";for(let f=0;f<t.modifiers.length;++f)switch(t.modifiers[f]){default:return"modifiers: enum value[] expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 100:case 101:break}}if(t.mode!=null&&t.hasOwnProperty("mode"))switch(t.mode){default:return"mode: enum value expected";case 0:case 1:case 2:case 3:break}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.KeyEvent)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.KeyEvent;switch(t.down!=null&&(r.down=!!t.down),t.press!=null&&(r.press=!!t.press),t.control_key){default:if(typeof t.control_key=="number"){r.control_key=t.control_key;break}break;case"Unknown":case 0:r.control_key=0;break;case"Alt":case 1:r.control_key=1;break;case"Backspace":case 2:r.control_key=2;break;case"CapsLock":case 3:r.control_key=3;break;case"Control":case 4:r.control_key=4;break;case"Delete":case 5:r.control_key=5;break;case"DownArrow":case 6:r.control_key=6;break;case"End":case 7:r.control_key=7;break;case"Escape":case 8:r.control_key=8;break;case"F1":case 9:r.control_key=9;break;case"F10":case 10:r.control_key=10;break;case"F11":case 11:r.control_key=11;break;case"F12":case 12:r.control_key=12;break;case"F2":case 13:r.control_key=13;break;case"F3":case 14:r.control_key=14;break;case"F4":case 15:r.control_key=15;break;case"F5":case 16:r.control_key=16;break;case"F6":case 17:r.control_key=17;break;case"F7":case 18:r.control_key=18;break;case"F8":case 19:r.control_key=19;break;case"F9":case 20:r.control_key=20;break;case"Home":case 21:r.control_key=21;break;case"LeftArrow":case 22:r.control_key=22;break;case"Meta":case 23:r.control_key=23;break;case"Option":case 24:r.control_key=24;break;case"PageDown":case 25:r.control_key=25;break;case"PageUp":case 26:r.control_key=26;break;case"Return":case 27:r.control_key=27;break;case"RightArrow":case 28:r.control_key=28;break;case"Shift":case 29:r.control_key=29;break;case"Space":case 30:r.control_key=30;break;case"Tab":case 31:r.control_key=31;break;case"UpArrow":case 32:r.control_key=32;break;case"Numpad0":case 33:r.control_key=33;break;case"Numpad1":case 34:r.control_key=34;break;case"Numpad2":case 35:r.control_key=35;break;case"Numpad3":case 36:r.control_key=36;break;case"Numpad4":case 37:r.control_key=37;break;case"Numpad5":case 38:r.control_key=38;break;case"Numpad6":case 39:r.control_key=39;break;case"Numpad7":case 40:r.control_key=40;break;case"Numpad8":case 41:r.control_key=41;break;case"Numpad9":case 42:r.control_key=42;break;case"Cancel":case 43:r.control_key=43;break;case"Clear":case 44:r.control_key=44;break;case"Menu":case 45:r.control_key=45;break;case"Pause":case 46:r.control_key=46;break;case"Kana":case 47:r.control_key=47;break;case"Hangul":case 48:r.control_key=48;break;case"Junja":case 49:r.control_key=49;break;case"Final":case 50:r.control_key=50;break;case"Hanja":case 51:r.control_key=51;break;case"Kanji":case 52:r.control_key=52;break;case"Convert":case 53:r.control_key=53;break;case"Select":case 54:r.control_key=54;break;case"Print":case 55:r.control_key=55;break;case"Execute":case 56:r.control_key=56;break;case"Snapshot":case 57:r.control_key=57;break;case"Insert":case 58:r.control_key=58;break;case"Help":case 59:r.control_key=59;break;case"Sleep":case 60:r.control_key=60;break;case"Separator":case 61:r.control_key=61;break;case"Scroll":case 62:r.control_key=62;break;case"NumLock":case 63:r.control_key=63;break;case"RWin":case 64:r.control_key=64;break;case"Apps":case 65:r.control_key=65;break;case"Multiply":case 66:r.control_key=66;break;case"Add":case 67:r.control_key=67;break;case"Subtract":case 68:r.control_key=68;break;case"Decimal":case 69:r.control_key=69;break;case"Divide":case 70:r.control_key=70;break;case"Equals":case 71:r.control_key=71;break;case"NumpadEnter":case 72:r.control_key=72;break;case"RShift":case 73:r.control_key=73;break;case"RControl":case 74:r.control_key=74;break;case"RAlt":case 75:r.control_key=75;break;case"VolumeMute":case 76:r.control_key=76;break;case"VolumeUp":case 77:r.control_key=77;break;case"VolumeDown":case 78:r.control_key=78;break;case"Power":case 79:r.control_key=79;break;case"CtrlAltDel":case 100:r.control_key=100;break;case"LockScreen":case 101:r.control_key=101;break}if(t.chr!=null&&(r.chr=t.chr>>>0),t.unicode!=null&&(r.unicode=t.unicode>>>0),t.seq!=null&&(r.seq=String(t.seq)),t.win2win_hotkey!=null&&(r.win2win_hotkey=t.win2win_hotkey>>>0),t.modifiers){if(!Array.isArray(t.modifiers))throw TypeError(".hbb.KeyEvent.modifiers: array expected");r.modifiers=[];for(let f=0;f<t.modifiers.length;++f)switch(t.modifiers[f]){default:if(typeof t.modifiers[f]=="number"){r.modifiers[f]=t.modifiers[f];break}case"Unknown":case 0:r.modifiers[f]=0;break;case"Alt":case 1:r.modifiers[f]=1;break;case"Backspace":case 2:r.modifiers[f]=2;break;case"CapsLock":case 3:r.modifiers[f]=3;break;case"Control":case 4:r.modifiers[f]=4;break;case"Delete":case 5:r.modifiers[f]=5;break;case"DownArrow":case 6:r.modifiers[f]=6;break;case"End":case 7:r.modifiers[f]=7;break;case"Escape":case 8:r.modifiers[f]=8;break;case"F1":case 9:r.modifiers[f]=9;break;case"F10":case 10:r.modifiers[f]=10;break;case"F11":case 11:r.modifiers[f]=11;break;case"F12":case 12:r.modifiers[f]=12;break;case"F2":case 13:r.modifiers[f]=13;break;case"F3":case 14:r.modifiers[f]=14;break;case"F4":case 15:r.modifiers[f]=15;break;case"F5":case 16:r.modifiers[f]=16;break;case"F6":case 17:r.modifiers[f]=17;break;case"F7":case 18:r.modifiers[f]=18;break;case"F8":case 19:r.modifiers[f]=19;break;case"F9":case 20:r.modifiers[f]=20;break;case"Home":case 21:r.modifiers[f]=21;break;case"LeftArrow":case 22:r.modifiers[f]=22;break;case"Meta":case 23:r.modifiers[f]=23;break;case"Option":case 24:r.modifiers[f]=24;break;case"PageDown":case 25:r.modifiers[f]=25;break;case"PageUp":case 26:r.modifiers[f]=26;break;case"Return":case 27:r.modifiers[f]=27;break;case"RightArrow":case 28:r.modifiers[f]=28;break;case"Shift":case 29:r.modifiers[f]=29;break;case"Space":case 30:r.modifiers[f]=30;break;case"Tab":case 31:r.modifiers[f]=31;break;case"UpArrow":case 32:r.modifiers[f]=32;break;case"Numpad0":case 33:r.modifiers[f]=33;break;case"Numpad1":case 34:r.modifiers[f]=34;break;case"Numpad2":case 35:r.modifiers[f]=35;break;case"Numpad3":case 36:r.modifiers[f]=36;break;case"Numpad4":case 37:r.modifiers[f]=37;break;case"Numpad5":case 38:r.modifiers[f]=38;break;case"Numpad6":case 39:r.modifiers[f]=39;break;case"Numpad7":case 40:r.modifiers[f]=40;break;case"Numpad8":case 41:r.modifiers[f]=41;break;case"Numpad9":case 42:r.modifiers[f]=42;break;case"Cancel":case 43:r.modifiers[f]=43;break;case"Clear":case 44:r.modifiers[f]=44;break;case"Menu":case 45:r.modifiers[f]=45;break;case"Pause":case 46:r.modifiers[f]=46;break;case"Kana":case 47:r.modifiers[f]=47;break;case"Hangul":case 48:r.modifiers[f]=48;break;case"Junja":case 49:r.modifiers[f]=49;break;case"Final":case 50:r.modifiers[f]=50;break;case"Hanja":case 51:r.modifiers[f]=51;break;case"Kanji":case 52:r.modifiers[f]=52;break;case"Convert":case 53:r.modifiers[f]=53;break;case"Select":case 54:r.modifiers[f]=54;break;case"Print":case 55:r.modifiers[f]=55;break;case"Execute":case 56:r.modifiers[f]=56;break;case"Snapshot":case 57:r.modifiers[f]=57;break;case"Insert":case 58:r.modifiers[f]=58;break;case"Help":case 59:r.modifiers[f]=59;break;case"Sleep":case 60:r.modifiers[f]=60;break;case"Separator":case 61:r.modifiers[f]=61;break;case"Scroll":case 62:r.modifiers[f]=62;break;case"NumLock":case 63:r.modifiers[f]=63;break;case"RWin":case 64:r.modifiers[f]=64;break;case"Apps":case 65:r.modifiers[f]=65;break;case"Multiply":case 66:r.modifiers[f]=66;break;case"Add":case 67:r.modifiers[f]=67;break;case"Subtract":case 68:r.modifiers[f]=68;break;case"Decimal":case 69:r.modifiers[f]=69;break;case"Divide":case 70:r.modifiers[f]=70;break;case"Equals":case 71:r.modifiers[f]=71;break;case"NumpadEnter":case 72:r.modifiers[f]=72;break;case"RShift":case 73:r.modifiers[f]=73;break;case"RControl":case 74:r.modifiers[f]=74;break;case"RAlt":case 75:r.modifiers[f]=75;break;case"VolumeMute":case 76:r.modifiers[f]=76;break;case"VolumeUp":case 77:r.modifiers[f]=77;break;case"VolumeDown":case 78:r.modifiers[f]=78;break;case"Power":case 79:r.modifiers[f]=79;break;case"CtrlAltDel":case 100:r.modifiers[f]=100;break;case"LockScreen":case 101:r.modifiers[f]=101;break}}switch(t.mode){default:if(typeof t.mode=="number"){r.mode=t.mode;break}break;case"Legacy":case 0:r.mode=0;break;case"Map":case 1:r.mode=1;break;case"Translate":case 2:r.mode=2;break;case"Auto":case 3:r.mode=3;break}return r},i.toObject=function(t,n){n||(n={});let r={};if((n.arrays||n.defaults)&&(r.modifiers=[]),n.defaults&&(r.down=!1,r.press=!1,r.mode=n.enums===String?"Legacy":0),t.down!=null&&t.hasOwnProperty("down")&&(r.down=t.down),t.press!=null&&t.hasOwnProperty("press")&&(r.press=t.press),t.control_key!=null&&t.hasOwnProperty("control_key")&&(r.control_key=n.enums===String?u.hbb.ControlKey[t.control_key]===void 0?t.control_key:u.hbb.ControlKey[t.control_key]:t.control_key,n.oneofs&&(r.union="control_key")),t.chr!=null&&t.hasOwnProperty("chr")&&(r.chr=t.chr,n.oneofs&&(r.union="chr")),t.unicode!=null&&t.hasOwnProperty("unicode")&&(r.unicode=t.unicode,n.oneofs&&(r.union="unicode")),t.seq!=null&&t.hasOwnProperty("seq")&&(r.seq=t.seq,n.oneofs&&(r.union="seq")),t.win2win_hotkey!=null&&t.hasOwnProperty("win2win_hotkey")&&(r.win2win_hotkey=t.win2win_hotkey,n.oneofs&&(r.union="win2win_hotkey")),t.modifiers&&t.modifiers.length){r.modifiers=[];for(let f=0;f<t.modifiers.length;++f)r.modifiers[f]=n.enums===String?u.hbb.ControlKey[t.modifiers[f]]===void 0?t.modifiers[f]:u.hbb.ControlKey[t.modifiers[f]]:t.modifiers[f]}return t.mode!=null&&t.hasOwnProperty("mode")&&(r.mode=n.enums===String?u.hbb.KeyboardMode[t.mode]===void 0?t.mode:u.hbb.KeyboardMode[t.mode]:t.mode),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.KeyEvent"},i}(),p.CursorData=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=l.Long?l.Long.fromBits(0,0,!0):0,i.prototype.hotx=0,i.prototype.hoty=0,i.prototype.width=0,i.prototype.height=0,i.prototype.colors=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).uint64(e.id),e.hotx!=null&&Object.hasOwnProperty.call(e,"hotx")&&t.uint32(16).sint32(e.hotx),e.hoty!=null&&Object.hasOwnProperty.call(e,"hoty")&&t.uint32(24).sint32(e.hoty),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(32).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(40).int32(e.height),e.colors!=null&&Object.hasOwnProperty.call(e,"colors")&&t.uint32(50).bytes(e.colors),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CursorData;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.uint64();break}case 2:{d.hotx=e.sint32();break}case 3:{d.hoty=e.sint32();break}case 4:{d.width=e.int32();break}case 5:{d.height=e.int32();break}case 6:{d.colors=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)&&!(e.id&&l.isInteger(e.id.low)&&l.isInteger(e.id.high))?"id: integer|Long expected":e.hotx!=null&&e.hasOwnProperty("hotx")&&!l.isInteger(e.hotx)?"hotx: integer expected":e.hoty!=null&&e.hasOwnProperty("hoty")&&!l.isInteger(e.hoty)?"hoty: integer expected":e.width!=null&&e.hasOwnProperty("width")&&!l.isInteger(e.width)?"width: integer expected":e.height!=null&&e.hasOwnProperty("height")&&!l.isInteger(e.height)?"height: integer expected":e.colors!=null&&e.hasOwnProperty("colors")&&!(e.colors&&typeof e.colors.length=="number"||l.isString(e.colors))?"colors: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CursorData)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CursorData;return e.id!=null&&(l.Long?(n.id=l.Long.fromValue(e.id)).unsigned=!0:typeof e.id=="string"?n.id=parseInt(e.id,10):typeof e.id=="number"?n.id=e.id:typeof e.id=="object"&&(n.id=new l.LongBits(e.id.low>>>0,e.id.high>>>0).toNumber(!0))),e.hotx!=null&&(n.hotx=e.hotx|0),e.hoty!=null&&(n.hoty=e.hoty|0),e.width!=null&&(n.width=e.width|0),e.height!=null&&(n.height=e.height|0),e.colors!=null&&(typeof e.colors=="string"?l.base64.decode(e.colors,n.colors=l.newBuffer(l.base64.length(e.colors)),0):e.colors.length>=0&&(n.colors=e.colors)),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(l.Long){let r=new l.Long(0,0,!0);n.id=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.id=t.longs===String?"0":0;n.hotx=0,n.hoty=0,n.width=0,n.height=0,t.bytes===String?n.colors="":(n.colors=[],t.bytes!==Array&&(n.colors=l.newBuffer(n.colors)))}return e.id!=null&&e.hasOwnProperty("id")&&(typeof e.id=="number"?n.id=t.longs===String?String(e.id):e.id:n.id=t.longs===String?l.Long.prototype.toString.call(e.id):t.longs===Number?new l.LongBits(e.id.low>>>0,e.id.high>>>0).toNumber(!0):e.id),e.hotx!=null&&e.hasOwnProperty("hotx")&&(n.hotx=e.hotx),e.hoty!=null&&e.hasOwnProperty("hoty")&&(n.hoty=e.hoty),e.width!=null&&e.hasOwnProperty("width")&&(n.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(n.height=e.height),e.colors!=null&&e.hasOwnProperty("colors")&&(n.colors=t.bytes===String?l.base64.encode(e.colors,0,e.colors.length):t.bytes===Array?Array.prototype.slice.call(e.colors):e.colors),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CursorData"},i}(),p.CursorPosition=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.x=0,i.prototype.y=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(8).sint32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(16).sint32(e.y),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CursorPosition;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.x=e.sint32();break}case 2:{d.y=e.sint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x)?"x: integer expected":e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y)?"y: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CursorPosition)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CursorPosition;return e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.x=0,n.y=0),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CursorPosition"},i}(),p.Hash=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.salt="",i.prototype.challenge="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.salt!=null&&Object.hasOwnProperty.call(e,"salt")&&t.uint32(10).string(e.salt),e.challenge!=null&&Object.hasOwnProperty.call(e,"challenge")&&t.uint32(18).string(e.challenge),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.Hash;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.salt=e.string();break}case 2:{d.challenge=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.salt!=null&&e.hasOwnProperty("salt")&&!l.isString(e.salt)?"salt: string expected":e.challenge!=null&&e.hasOwnProperty("challenge")&&!l.isString(e.challenge)?"challenge: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.Hash)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.Hash;return e.salt!=null&&(n.salt=String(e.salt)),e.challenge!=null&&(n.challenge=String(e.challenge)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.salt="",n.challenge=""),e.salt!=null&&e.hasOwnProperty("salt")&&(n.salt=e.salt),e.challenge!=null&&e.hasOwnProperty("challenge")&&(n.challenge=e.challenge),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.Hash"},i}(),p.ClipboardFormat=function(){let i={},o=Object.create(i);return o[i[0]="Text"]=0,o[i[1]="Rtf"]=1,o[i[2]="Html"]=2,o[i[21]="ImageRgba"]=21,o[i[22]="ImagePng"]=22,o[i[23]="ImageSvg"]=23,o[i[31]="Special"]=31,o}(),p.Clipboard=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.compress=!1,i.prototype.content=l.newBuffer([]),i.prototype.width=0,i.prototype.height=0,i.prototype.format=0,i.prototype.special_name="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&t.uint32(8).bool(e.compress),e.content!=null&&Object.hasOwnProperty.call(e,"content")&&t.uint32(18).bytes(e.content),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(24).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(32).int32(e.height),e.format!=null&&Object.hasOwnProperty.call(e,"format")&&t.uint32(40).int32(e.format),e.special_name!=null&&Object.hasOwnProperty.call(e,"special_name")&&t.uint32(50).string(e.special_name),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.Clipboard;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.compress=e.bool();break}case 2:{d.content=e.bytes();break}case 3:{d.width=e.int32();break}case 4:{d.height=e.int32();break}case 5:{d.format=e.int32();break}case 6:{d.special_name=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean")return"compress: boolean expected";if(e.content!=null&&e.hasOwnProperty("content")&&!(e.content&&typeof e.content.length=="number"||l.isString(e.content)))return"content: buffer expected";if(e.width!=null&&e.hasOwnProperty("width")&&!l.isInteger(e.width))return"width: integer expected";if(e.height!=null&&e.hasOwnProperty("height")&&!l.isInteger(e.height))return"height: integer expected";if(e.format!=null&&e.hasOwnProperty("format"))switch(e.format){default:return"format: enum value expected";case 0:case 1:case 2:case 21:case 22:case 23:case 31:break}return e.special_name!=null&&e.hasOwnProperty("special_name")&&!l.isString(e.special_name)?"special_name: string expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.Clipboard)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.Clipboard;switch(e.compress!=null&&(n.compress=!!e.compress),e.content!=null&&(typeof e.content=="string"?l.base64.decode(e.content,n.content=l.newBuffer(l.base64.length(e.content)),0):e.content.length>=0&&(n.content=e.content)),e.width!=null&&(n.width=e.width|0),e.height!=null&&(n.height=e.height|0),e.format){default:if(typeof e.format=="number"){n.format=e.format;break}break;case"Text":case 0:n.format=0;break;case"Rtf":case 1:n.format=1;break;case"Html":case 2:n.format=2;break;case"ImageRgba":case 21:n.format=21;break;case"ImagePng":case 22:n.format=22;break;case"ImageSvg":case 23:n.format=23;break;case"Special":case 31:n.format=31;break}return e.special_name!=null&&(n.special_name=String(e.special_name)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.compress=!1,t.bytes===String?n.content="":(n.content=[],t.bytes!==Array&&(n.content=l.newBuffer(n.content))),n.width=0,n.height=0,n.format=t.enums===String?"Text":0,n.special_name=""),e.compress!=null&&e.hasOwnProperty("compress")&&(n.compress=e.compress),e.content!=null&&e.hasOwnProperty("content")&&(n.content=t.bytes===String?l.base64.encode(e.content,0,e.content.length):t.bytes===Array?Array.prototype.slice.call(e.content):e.content),e.width!=null&&e.hasOwnProperty("width")&&(n.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(n.height=e.height),e.format!=null&&e.hasOwnProperty("format")&&(n.format=t.enums===String?u.hbb.ClipboardFormat[e.format]===void 0?e.format:u.hbb.ClipboardFormat[e.format]:e.format),e.special_name!=null&&e.hasOwnProperty("special_name")&&(n.special_name=e.special_name),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.Clipboard"},i}(),p.MultiClipboards=function(){function i(o){if(this.clipboards=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.clipboards=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.clipboards!=null&&e.clipboards.length)for(let n=0;n<e.clipboards.length;++n)u.hbb.Clipboard.encode(e.clipboards[n],t.uint32(10).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.MultiClipboards;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.clipboards&&d.clipboards.length||(d.clipboards=[]),d.clipboards.push(u.hbb.Clipboard.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.clipboards!=null&&e.hasOwnProperty("clipboards")){if(!Array.isArray(e.clipboards))return"clipboards: array expected";for(let n=0;n<e.clipboards.length;++n){let r=u.hbb.Clipboard.verify(e.clipboards[n],t+1);if(r)return"clipboards."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.MultiClipboards)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.MultiClipboards;if(e.clipboards){if(!Array.isArray(e.clipboards))throw TypeError(".hbb.MultiClipboards.clipboards: array expected");n.clipboards=[];for(let r=0;r<e.clipboards.length;++r){if(typeof e.clipboards[r]!="object")throw TypeError(".hbb.MultiClipboards.clipboards: object expected");n.clipboards[r]=u.hbb.Clipboard.fromObject(e.clipboards[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.clipboards=[]),e.clipboards&&e.clipboards.length){n.clipboards=[];for(let r=0;r<e.clipboards.length;++r)n.clipboards[r]=u.hbb.Clipboard.toObject(e.clipboards[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.MultiClipboards"},i}(),p.FileType=function(){let i={},o=Object.create(i);return o[i[0]="Dir"]=0,o[i[2]="DirLink"]=2,o[i[3]="DirDrive"]=3,o[i[4]="File"]=4,o[i[5]="FileLink"]=5,o}(),p.FileEntry=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.entry_type=0,i.prototype.name="",i.prototype.is_hidden=!1,i.prototype.size=l.Long?l.Long.fromBits(0,0,!0):0,i.prototype.modified_time=l.Long?l.Long.fromBits(0,0,!0):0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.entry_type!=null&&Object.hasOwnProperty.call(e,"entry_type")&&t.uint32(8).int32(e.entry_type),e.name!=null&&Object.hasOwnProperty.call(e,"name")&&t.uint32(18).string(e.name),e.is_hidden!=null&&Object.hasOwnProperty.call(e,"is_hidden")&&t.uint32(24).bool(e.is_hidden),e.size!=null&&Object.hasOwnProperty.call(e,"size")&&t.uint32(32).uint64(e.size),e.modified_time!=null&&Object.hasOwnProperty.call(e,"modified_time")&&t.uint32(40).uint64(e.modified_time),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileEntry;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.entry_type=e.int32();break}case 2:{d.name=e.string();break}case 3:{d.is_hidden=e.bool();break}case 4:{d.size=e.uint64();break}case 5:{d.modified_time=e.uint64();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.entry_type!=null&&e.hasOwnProperty("entry_type"))switch(e.entry_type){default:return"entry_type: enum value expected";case 0:case 2:case 3:case 4:case 5:break}return e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name)?"name: string expected":e.is_hidden!=null&&e.hasOwnProperty("is_hidden")&&typeof e.is_hidden!="boolean"?"is_hidden: boolean expected":e.size!=null&&e.hasOwnProperty("size")&&!l.isInteger(e.size)&&!(e.size&&l.isInteger(e.size.low)&&l.isInteger(e.size.high))?"size: integer|Long expected":e.modified_time!=null&&e.hasOwnProperty("modified_time")&&!l.isInteger(e.modified_time)&&!(e.modified_time&&l.isInteger(e.modified_time.low)&&l.isInteger(e.modified_time.high))?"modified_time: integer|Long expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.FileEntry)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileEntry;switch(e.entry_type){default:if(typeof e.entry_type=="number"){n.entry_type=e.entry_type;break}break;case"Dir":case 0:n.entry_type=0;break;case"DirLink":case 2:n.entry_type=2;break;case"DirDrive":case 3:n.entry_type=3;break;case"File":case 4:n.entry_type=4;break;case"FileLink":case 5:n.entry_type=5;break}return e.name!=null&&(n.name=String(e.name)),e.is_hidden!=null&&(n.is_hidden=!!e.is_hidden),e.size!=null&&(l.Long?(n.size=l.Long.fromValue(e.size)).unsigned=!0:typeof e.size=="string"?n.size=parseInt(e.size,10):typeof e.size=="number"?n.size=e.size:typeof e.size=="object"&&(n.size=new l.LongBits(e.size.low>>>0,e.size.high>>>0).toNumber(!0))),e.modified_time!=null&&(l.Long?(n.modified_time=l.Long.fromValue(e.modified_time)).unsigned=!0:typeof e.modified_time=="string"?n.modified_time=parseInt(e.modified_time,10):typeof e.modified_time=="number"?n.modified_time=e.modified_time:typeof e.modified_time=="object"&&(n.modified_time=new l.LongBits(e.modified_time.low>>>0,e.modified_time.high>>>0).toNumber(!0))),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(n.entry_type=t.enums===String?"Dir":0,n.name="",n.is_hidden=!1,l.Long){let r=new l.Long(0,0,!0);n.size=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.size=t.longs===String?"0":0;if(l.Long){let r=new l.Long(0,0,!0);n.modified_time=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.modified_time=t.longs===String?"0":0}return e.entry_type!=null&&e.hasOwnProperty("entry_type")&&(n.entry_type=t.enums===String?u.hbb.FileType[e.entry_type]===void 0?e.entry_type:u.hbb.FileType[e.entry_type]:e.entry_type),e.name!=null&&e.hasOwnProperty("name")&&(n.name=e.name),e.is_hidden!=null&&e.hasOwnProperty("is_hidden")&&(n.is_hidden=e.is_hidden),e.size!=null&&e.hasOwnProperty("size")&&(typeof e.size=="number"?n.size=t.longs===String?String(e.size):e.size:n.size=t.longs===String?l.Long.prototype.toString.call(e.size):t.longs===Number?new l.LongBits(e.size.low>>>0,e.size.high>>>0).toNumber(!0):e.size),e.modified_time!=null&&e.hasOwnProperty("modified_time")&&(typeof e.modified_time=="number"?n.modified_time=t.longs===String?String(e.modified_time):e.modified_time:n.modified_time=t.longs===String?l.Long.prototype.toString.call(e.modified_time):t.longs===Number?new l.LongBits(e.modified_time.low>>>0,e.modified_time.high>>>0).toNumber(!0):e.modified_time),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileEntry"},i}(),p.FileDirectory=function(){function i(o){if(this.entries=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.entries=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.entries!=null&&e.entries.length)for(let n=0;n<e.entries.length;++n)u.hbb.FileEntry.encode(e.entries[n],t.uint32(26).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileDirectory;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.entries&&d.entries.length||(d.entries=[]),d.entries.push(u.hbb.FileEntry.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id))return"id: integer expected";if(e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path))return"path: string expected";if(e.entries!=null&&e.hasOwnProperty("entries")){if(!Array.isArray(e.entries))return"entries: array expected";for(let n=0;n<e.entries.length;++n){let r=u.hbb.FileEntry.verify(e.entries[n],t+1);if(r)return"entries."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.FileDirectory)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileDirectory;if(e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.entries){if(!Array.isArray(e.entries))throw TypeError(".hbb.FileDirectory.entries: array expected");n.entries=[];for(let r=0;r<e.entries.length;++r){if(typeof e.entries[r]!="object")throw TypeError(".hbb.FileDirectory.entries: object expected");n.entries[r]=u.hbb.FileEntry.fromObject(e.entries[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.entries=[]),t.defaults&&(n.id=0,n.path=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.entries&&e.entries.length){n.entries=[];for(let r=0;r<e.entries.length;++r)n.entries[r]=u.hbb.FileEntry.toObject(e.entries[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileDirectory"},i}(),p.ReadDir=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.path="",i.prototype.include_hidden=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(10).string(e.path),e.include_hidden!=null&&Object.hasOwnProperty.call(e,"include_hidden")&&t.uint32(16).bool(e.include_hidden),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ReadDir;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.path=e.string();break}case 2:{d.include_hidden=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&typeof e.include_hidden!="boolean"?"include_hidden: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ReadDir)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ReadDir;return e.path!=null&&(n.path=String(e.path)),e.include_hidden!=null&&(n.include_hidden=!!e.include_hidden),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.path="",n.include_hidden=!1),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&(n.include_hidden=e.include_hidden),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ReadDir"},i}(),p.ReadEmptyDirs=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.path="",i.prototype.include_hidden=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(10).string(e.path),e.include_hidden!=null&&Object.hasOwnProperty.call(e,"include_hidden")&&t.uint32(16).bool(e.include_hidden),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ReadEmptyDirs;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.path=e.string();break}case 2:{d.include_hidden=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&typeof e.include_hidden!="boolean"?"include_hidden: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ReadEmptyDirs)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ReadEmptyDirs;return e.path!=null&&(n.path=String(e.path)),e.include_hidden!=null&&(n.include_hidden=!!e.include_hidden),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.path="",n.include_hidden=!1),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&(n.include_hidden=e.include_hidden),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ReadEmptyDirs"},i}(),p.ReadEmptyDirsResponse=function(){function i(o){if(this.empty_dirs=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.path="",i.prototype.empty_dirs=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(10).string(e.path),e.empty_dirs!=null&&e.empty_dirs.length)for(let n=0;n<e.empty_dirs.length;++n)u.hbb.FileDirectory.encode(e.empty_dirs[n],t.uint32(18).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ReadEmptyDirsResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.path=e.string();break}case 2:{d.empty_dirs&&d.empty_dirs.length||(d.empty_dirs=[]),d.empty_dirs.push(u.hbb.FileDirectory.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path))return"path: string expected";if(e.empty_dirs!=null&&e.hasOwnProperty("empty_dirs")){if(!Array.isArray(e.empty_dirs))return"empty_dirs: array expected";for(let n=0;n<e.empty_dirs.length;++n){let r=u.hbb.FileDirectory.verify(e.empty_dirs[n],t+1);if(r)return"empty_dirs."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.ReadEmptyDirsResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ReadEmptyDirsResponse;if(e.path!=null&&(n.path=String(e.path)),e.empty_dirs){if(!Array.isArray(e.empty_dirs))throw TypeError(".hbb.ReadEmptyDirsResponse.empty_dirs: array expected");n.empty_dirs=[];for(let r=0;r<e.empty_dirs.length;++r){if(typeof e.empty_dirs[r]!="object")throw TypeError(".hbb.ReadEmptyDirsResponse.empty_dirs: object expected");n.empty_dirs[r]=u.hbb.FileDirectory.fromObject(e.empty_dirs[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.empty_dirs=[]),t.defaults&&(n.path=""),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.empty_dirs&&e.empty_dirs.length){n.empty_dirs=[];for(let r=0;r<e.empty_dirs.length;++r)n.empty_dirs[r]=u.hbb.FileDirectory.toObject(e.empty_dirs[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ReadEmptyDirsResponse"},i}(),p.ReadAllFiles=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.include_hidden=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.include_hidden!=null&&Object.hasOwnProperty.call(e,"include_hidden")&&t.uint32(24).bool(e.include_hidden),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ReadAllFiles;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.include_hidden=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&typeof e.include_hidden!="boolean"?"include_hidden: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ReadAllFiles)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ReadAllFiles;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.include_hidden!=null&&(n.include_hidden=!!e.include_hidden),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path="",n.include_hidden=!1),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&(n.include_hidden=e.include_hidden),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ReadAllFiles"},i}(),p.FileRename=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.new_name="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.new_name!=null&&Object.hasOwnProperty.call(e,"new_name")&&t.uint32(26).string(e.new_name),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileRename;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.new_name=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.new_name!=null&&e.hasOwnProperty("new_name")&&!l.isString(e.new_name)?"new_name: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileRename)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileRename;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.new_name!=null&&(n.new_name=String(e.new_name)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path="",n.new_name=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.new_name!=null&&e.hasOwnProperty("new_name")&&(n.new_name=e.new_name),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileRename"},i}(),p.FileAction=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.read_dir=null,i.prototype.send=null,i.prototype.receive=null,i.prototype.create=null,i.prototype.remove_dir=null,i.prototype.remove_file=null,i.prototype.all_files=null,i.prototype.cancel=null,i.prototype.send_confirm=null,i.prototype.rename=null,i.prototype.read_empty_dirs=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["read_dir","send","receive","create","remove_dir","remove_file","all_files","cancel","send_confirm","rename","read_empty_dirs"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.read_dir!=null&&Object.hasOwnProperty.call(t,"read_dir")&&u.hbb.ReadDir.encode(t.read_dir,n.uint32(10).fork()).ldelim(),t.send!=null&&Object.hasOwnProperty.call(t,"send")&&u.hbb.FileTransferSendRequest.encode(t.send,n.uint32(18).fork()).ldelim(),t.receive!=null&&Object.hasOwnProperty.call(t,"receive")&&u.hbb.FileTransferReceiveRequest.encode(t.receive,n.uint32(26).fork()).ldelim(),t.create!=null&&Object.hasOwnProperty.call(t,"create")&&u.hbb.FileDirCreate.encode(t.create,n.uint32(34).fork()).ldelim(),t.remove_dir!=null&&Object.hasOwnProperty.call(t,"remove_dir")&&u.hbb.FileRemoveDir.encode(t.remove_dir,n.uint32(42).fork()).ldelim(),t.remove_file!=null&&Object.hasOwnProperty.call(t,"remove_file")&&u.hbb.FileRemoveFile.encode(t.remove_file,n.uint32(50).fork()).ldelim(),t.all_files!=null&&Object.hasOwnProperty.call(t,"all_files")&&u.hbb.ReadAllFiles.encode(t.all_files,n.uint32(58).fork()).ldelim(),t.cancel!=null&&Object.hasOwnProperty.call(t,"cancel")&&u.hbb.FileTransferCancel.encode(t.cancel,n.uint32(66).fork()).ldelim(),t.send_confirm!=null&&Object.hasOwnProperty.call(t,"send_confirm")&&u.hbb.FileTransferSendConfirmRequest.encode(t.send_confirm,n.uint32(74).fork()).ldelim(),t.rename!=null&&Object.hasOwnProperty.call(t,"rename")&&u.hbb.FileRename.encode(t.rename,n.uint32(82).fork()).ldelim(),t.read_empty_dirs!=null&&Object.hasOwnProperty.call(t,"read_empty_dirs")&&u.hbb.ReadEmptyDirs.encode(t.read_empty_dirs,n.uint32(90).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.FileAction;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.read_dir=u.hbb.ReadDir.decode(t,t.uint32(),void 0,f+1);break}case 2:{c.send=u.hbb.FileTransferSendRequest.decode(t,t.uint32(),void 0,f+1);break}case 3:{c.receive=u.hbb.FileTransferReceiveRequest.decode(t,t.uint32(),void 0,f+1);break}case 4:{c.create=u.hbb.FileDirCreate.decode(t,t.uint32(),void 0,f+1);break}case 5:{c.remove_dir=u.hbb.FileRemoveDir.decode(t,t.uint32(),void 0,f+1);break}case 6:{c.remove_file=u.hbb.FileRemoveFile.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.all_files=u.hbb.ReadAllFiles.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.cancel=u.hbb.FileTransferCancel.decode(t,t.uint32(),void 0,f+1);break}case 9:{c.send_confirm=u.hbb.FileTransferSendConfirmRequest.decode(t,t.uint32(),void 0,f+1);break}case 10:{c.rename=u.hbb.FileRename.decode(t,t.uint32(),void 0,f+1);break}case 11:{c.read_empty_dirs=u.hbb.ReadEmptyDirs.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.read_dir!=null&&t.hasOwnProperty("read_dir")){r.union=1;{let f=u.hbb.ReadDir.verify(t.read_dir,n+1);if(f)return"read_dir."+f}}if(t.send!=null&&t.hasOwnProperty("send")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferSendRequest.verify(t.send,n+1);if(f)return"send."+f}}if(t.receive!=null&&t.hasOwnProperty("receive")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferReceiveRequest.verify(t.receive,n+1);if(f)return"receive."+f}}if(t.create!=null&&t.hasOwnProperty("create")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileDirCreate.verify(t.create,n+1);if(f)return"create."+f}}if(t.remove_dir!=null&&t.hasOwnProperty("remove_dir")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileRemoveDir.verify(t.remove_dir,n+1);if(f)return"remove_dir."+f}}if(t.remove_file!=null&&t.hasOwnProperty("remove_file")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileRemoveFile.verify(t.remove_file,n+1);if(f)return"remove_file."+f}}if(t.all_files!=null&&t.hasOwnProperty("all_files")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ReadAllFiles.verify(t.all_files,n+1);if(f)return"all_files."+f}}if(t.cancel!=null&&t.hasOwnProperty("cancel")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferCancel.verify(t.cancel,n+1);if(f)return"cancel."+f}}if(t.send_confirm!=null&&t.hasOwnProperty("send_confirm")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferSendConfirmRequest.verify(t.send_confirm,n+1);if(f)return"send_confirm."+f}}if(t.rename!=null&&t.hasOwnProperty("rename")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileRename.verify(t.rename,n+1);if(f)return"rename."+f}}if(t.read_empty_dirs!=null&&t.hasOwnProperty("read_empty_dirs")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ReadEmptyDirs.verify(t.read_empty_dirs,n+1);if(f)return"read_empty_dirs."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.FileAction)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.FileAction;if(t.read_dir!=null){if(typeof t.read_dir!="object")throw TypeError(".hbb.FileAction.read_dir: object expected");r.read_dir=u.hbb.ReadDir.fromObject(t.read_dir,n+1)}if(t.send!=null){if(typeof t.send!="object")throw TypeError(".hbb.FileAction.send: object expected");r.send=u.hbb.FileTransferSendRequest.fromObject(t.send,n+1)}if(t.receive!=null){if(typeof t.receive!="object")throw TypeError(".hbb.FileAction.receive: object expected");r.receive=u.hbb.FileTransferReceiveRequest.fromObject(t.receive,n+1)}if(t.create!=null){if(typeof t.create!="object")throw TypeError(".hbb.FileAction.create: object expected");r.create=u.hbb.FileDirCreate.fromObject(t.create,n+1)}if(t.remove_dir!=null){if(typeof t.remove_dir!="object")throw TypeError(".hbb.FileAction.remove_dir: object expected");r.remove_dir=u.hbb.FileRemoveDir.fromObject(t.remove_dir,n+1)}if(t.remove_file!=null){if(typeof t.remove_file!="object")throw TypeError(".hbb.FileAction.remove_file: object expected");r.remove_file=u.hbb.FileRemoveFile.fromObject(t.remove_file,n+1)}if(t.all_files!=null){if(typeof t.all_files!="object")throw TypeError(".hbb.FileAction.all_files: object expected");r.all_files=u.hbb.ReadAllFiles.fromObject(t.all_files,n+1)}if(t.cancel!=null){if(typeof t.cancel!="object")throw TypeError(".hbb.FileAction.cancel: object expected");r.cancel=u.hbb.FileTransferCancel.fromObject(t.cancel,n+1)}if(t.send_confirm!=null){if(typeof t.send_confirm!="object")throw TypeError(".hbb.FileAction.send_confirm: object expected");r.send_confirm=u.hbb.FileTransferSendConfirmRequest.fromObject(t.send_confirm,n+1)}if(t.rename!=null){if(typeof t.rename!="object")throw TypeError(".hbb.FileAction.rename: object expected");r.rename=u.hbb.FileRename.fromObject(t.rename,n+1)}if(t.read_empty_dirs!=null){if(typeof t.read_empty_dirs!="object")throw TypeError(".hbb.FileAction.read_empty_dirs: object expected");r.read_empty_dirs=u.hbb.ReadEmptyDirs.fromObject(t.read_empty_dirs,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.read_dir!=null&&t.hasOwnProperty("read_dir")&&(r.read_dir=u.hbb.ReadDir.toObject(t.read_dir,n),n.oneofs&&(r.union="read_dir")),t.send!=null&&t.hasOwnProperty("send")&&(r.send=u.hbb.FileTransferSendRequest.toObject(t.send,n),n.oneofs&&(r.union="send")),t.receive!=null&&t.hasOwnProperty("receive")&&(r.receive=u.hbb.FileTransferReceiveRequest.toObject(t.receive,n),n.oneofs&&(r.union="receive")),t.create!=null&&t.hasOwnProperty("create")&&(r.create=u.hbb.FileDirCreate.toObject(t.create,n),n.oneofs&&(r.union="create")),t.remove_dir!=null&&t.hasOwnProperty("remove_dir")&&(r.remove_dir=u.hbb.FileRemoveDir.toObject(t.remove_dir,n),n.oneofs&&(r.union="remove_dir")),t.remove_file!=null&&t.hasOwnProperty("remove_file")&&(r.remove_file=u.hbb.FileRemoveFile.toObject(t.remove_file,n),n.oneofs&&(r.union="remove_file")),t.all_files!=null&&t.hasOwnProperty("all_files")&&(r.all_files=u.hbb.ReadAllFiles.toObject(t.all_files,n),n.oneofs&&(r.union="all_files")),t.cancel!=null&&t.hasOwnProperty("cancel")&&(r.cancel=u.hbb.FileTransferCancel.toObject(t.cancel,n),n.oneofs&&(r.union="cancel")),t.send_confirm!=null&&t.hasOwnProperty("send_confirm")&&(r.send_confirm=u.hbb.FileTransferSendConfirmRequest.toObject(t.send_confirm,n),n.oneofs&&(r.union="send_confirm")),t.rename!=null&&t.hasOwnProperty("rename")&&(r.rename=u.hbb.FileRename.toObject(t.rename,n),n.oneofs&&(r.union="rename")),t.read_empty_dirs!=null&&t.hasOwnProperty("read_empty_dirs")&&(r.read_empty_dirs=u.hbb.ReadEmptyDirs.toObject(t.read_empty_dirs,n),n.oneofs&&(r.union="read_empty_dirs")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.FileAction"},i}(),p.FileTransferCancel=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferCancel;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferCancel)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferCancel;return e.id!=null&&(n.id=e.id|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferCancel"},i}(),p.FileResponse=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.dir=null,i.prototype.block=null,i.prototype.error=null,i.prototype.done=null,i.prototype.digest=null,i.prototype.empty_dirs=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["dir","block","error","done","digest","empty_dirs"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.dir!=null&&Object.hasOwnProperty.call(t,"dir")&&u.hbb.FileDirectory.encode(t.dir,n.uint32(10).fork()).ldelim(),t.block!=null&&Object.hasOwnProperty.call(t,"block")&&u.hbb.FileTransferBlock.encode(t.block,n.uint32(18).fork()).ldelim(),t.error!=null&&Object.hasOwnProperty.call(t,"error")&&u.hbb.FileTransferError.encode(t.error,n.uint32(26).fork()).ldelim(),t.done!=null&&Object.hasOwnProperty.call(t,"done")&&u.hbb.FileTransferDone.encode(t.done,n.uint32(34).fork()).ldelim(),t.digest!=null&&Object.hasOwnProperty.call(t,"digest")&&u.hbb.FileTransferDigest.encode(t.digest,n.uint32(42).fork()).ldelim(),t.empty_dirs!=null&&Object.hasOwnProperty.call(t,"empty_dirs")&&u.hbb.ReadEmptyDirsResponse.encode(t.empty_dirs,n.uint32(50).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.FileResponse;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.dir=u.hbb.FileDirectory.decode(t,t.uint32(),void 0,f+1);break}case 2:{c.block=u.hbb.FileTransferBlock.decode(t,t.uint32(),void 0,f+1);break}case 3:{c.error=u.hbb.FileTransferError.decode(t,t.uint32(),void 0,f+1);break}case 4:{c.done=u.hbb.FileTransferDone.decode(t,t.uint32(),void 0,f+1);break}case 5:{c.digest=u.hbb.FileTransferDigest.decode(t,t.uint32(),void 0,f+1);break}case 6:{c.empty_dirs=u.hbb.ReadEmptyDirsResponse.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.dir!=null&&t.hasOwnProperty("dir")){r.union=1;{let f=u.hbb.FileDirectory.verify(t.dir,n+1);if(f)return"dir."+f}}if(t.block!=null&&t.hasOwnProperty("block")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferBlock.verify(t.block,n+1);if(f)return"block."+f}}if(t.error!=null&&t.hasOwnProperty("error")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferError.verify(t.error,n+1);if(f)return"error."+f}}if(t.done!=null&&t.hasOwnProperty("done")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferDone.verify(t.done,n+1);if(f)return"done."+f}}if(t.digest!=null&&t.hasOwnProperty("digest")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileTransferDigest.verify(t.digest,n+1);if(f)return"digest."+f}}if(t.empty_dirs!=null&&t.hasOwnProperty("empty_dirs")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ReadEmptyDirsResponse.verify(t.empty_dirs,n+1);if(f)return"empty_dirs."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.FileResponse)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.FileResponse;if(t.dir!=null){if(typeof t.dir!="object")throw TypeError(".hbb.FileResponse.dir: object expected");r.dir=u.hbb.FileDirectory.fromObject(t.dir,n+1)}if(t.block!=null){if(typeof t.block!="object")throw TypeError(".hbb.FileResponse.block: object expected");r.block=u.hbb.FileTransferBlock.fromObject(t.block,n+1)}if(t.error!=null){if(typeof t.error!="object")throw TypeError(".hbb.FileResponse.error: object expected");r.error=u.hbb.FileTransferError.fromObject(t.error,n+1)}if(t.done!=null){if(typeof t.done!="object")throw TypeError(".hbb.FileResponse.done: object expected");r.done=u.hbb.FileTransferDone.fromObject(t.done,n+1)}if(t.digest!=null){if(typeof t.digest!="object")throw TypeError(".hbb.FileResponse.digest: object expected");r.digest=u.hbb.FileTransferDigest.fromObject(t.digest,n+1)}if(t.empty_dirs!=null){if(typeof t.empty_dirs!="object")throw TypeError(".hbb.FileResponse.empty_dirs: object expected");r.empty_dirs=u.hbb.ReadEmptyDirsResponse.fromObject(t.empty_dirs,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.dir!=null&&t.hasOwnProperty("dir")&&(r.dir=u.hbb.FileDirectory.toObject(t.dir,n),n.oneofs&&(r.union="dir")),t.block!=null&&t.hasOwnProperty("block")&&(r.block=u.hbb.FileTransferBlock.toObject(t.block,n),n.oneofs&&(r.union="block")),t.error!=null&&t.hasOwnProperty("error")&&(r.error=u.hbb.FileTransferError.toObject(t.error,n),n.oneofs&&(r.union="error")),t.done!=null&&t.hasOwnProperty("done")&&(r.done=u.hbb.FileTransferDone.toObject(t.done,n),n.oneofs&&(r.union="done")),t.digest!=null&&t.hasOwnProperty("digest")&&(r.digest=u.hbb.FileTransferDigest.toObject(t.digest,n),n.oneofs&&(r.union="digest")),t.empty_dirs!=null&&t.hasOwnProperty("empty_dirs")&&(r.empty_dirs=u.hbb.ReadEmptyDirsResponse.toObject(t.empty_dirs,n),n.oneofs&&(r.union="empty_dirs")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.FileResponse"},i}(),p.FileTransferDigest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.file_num=0,i.prototype.last_modified=l.Long?l.Long.fromBits(0,0,!0):0,i.prototype.file_size=l.Long?l.Long.fromBits(0,0,!0):0,i.prototype.is_upload=!1,i.prototype.is_identical=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(16).sint32(e.file_num),e.last_modified!=null&&Object.hasOwnProperty.call(e,"last_modified")&&t.uint32(24).uint64(e.last_modified),e.file_size!=null&&Object.hasOwnProperty.call(e,"file_size")&&t.uint32(32).uint64(e.file_size),e.is_upload!=null&&Object.hasOwnProperty.call(e,"is_upload")&&t.uint32(40).bool(e.is_upload),e.is_identical!=null&&Object.hasOwnProperty.call(e,"is_identical")&&t.uint32(48).bool(e.is_identical),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferDigest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.file_num=e.sint32();break}case 3:{d.last_modified=e.uint64();break}case 4:{d.file_size=e.uint64();break}case 5:{d.is_upload=e.bool();break}case 6:{d.is_identical=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":e.last_modified!=null&&e.hasOwnProperty("last_modified")&&!l.isInteger(e.last_modified)&&!(e.last_modified&&l.isInteger(e.last_modified.low)&&l.isInteger(e.last_modified.high))?"last_modified: integer|Long expected":e.file_size!=null&&e.hasOwnProperty("file_size")&&!l.isInteger(e.file_size)&&!(e.file_size&&l.isInteger(e.file_size.low)&&l.isInteger(e.file_size.high))?"file_size: integer|Long expected":e.is_upload!=null&&e.hasOwnProperty("is_upload")&&typeof e.is_upload!="boolean"?"is_upload: boolean expected":e.is_identical!=null&&e.hasOwnProperty("is_identical")&&typeof e.is_identical!="boolean"?"is_identical: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferDigest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferDigest;return e.id!=null&&(n.id=e.id|0),e.file_num!=null&&(n.file_num=e.file_num|0),e.last_modified!=null&&(l.Long?(n.last_modified=l.Long.fromValue(e.last_modified)).unsigned=!0:typeof e.last_modified=="string"?n.last_modified=parseInt(e.last_modified,10):typeof e.last_modified=="number"?n.last_modified=e.last_modified:typeof e.last_modified=="object"&&(n.last_modified=new l.LongBits(e.last_modified.low>>>0,e.last_modified.high>>>0).toNumber(!0))),e.file_size!=null&&(l.Long?(n.file_size=l.Long.fromValue(e.file_size)).unsigned=!0:typeof e.file_size=="string"?n.file_size=parseInt(e.file_size,10):typeof e.file_size=="number"?n.file_size=e.file_size:typeof e.file_size=="object"&&(n.file_size=new l.LongBits(e.file_size.low>>>0,e.file_size.high>>>0).toNumber(!0))),e.is_upload!=null&&(n.is_upload=!!e.is_upload),e.is_identical!=null&&(n.is_identical=!!e.is_identical),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(n.id=0,n.file_num=0,l.Long){let r=new l.Long(0,0,!0);n.last_modified=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.last_modified=t.longs===String?"0":0;if(l.Long){let r=new l.Long(0,0,!0);n.file_size=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.file_size=t.longs===String?"0":0;n.is_upload=!1,n.is_identical=!1}return e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),e.last_modified!=null&&e.hasOwnProperty("last_modified")&&(typeof e.last_modified=="number"?n.last_modified=t.longs===String?String(e.last_modified):e.last_modified:n.last_modified=t.longs===String?l.Long.prototype.toString.call(e.last_modified):t.longs===Number?new l.LongBits(e.last_modified.low>>>0,e.last_modified.high>>>0).toNumber(!0):e.last_modified),e.file_size!=null&&e.hasOwnProperty("file_size")&&(typeof e.file_size=="number"?n.file_size=t.longs===String?String(e.file_size):e.file_size:n.file_size=t.longs===String?l.Long.prototype.toString.call(e.file_size):t.longs===Number?new l.LongBits(e.file_size.low>>>0,e.file_size.high>>>0).toNumber(!0):e.file_size),e.is_upload!=null&&e.hasOwnProperty("is_upload")&&(n.is_upload=e.is_upload),e.is_identical!=null&&e.hasOwnProperty("is_identical")&&(n.is_identical=e.is_identical),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferDigest"},i}(),p.FileTransferBlock=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.file_num=0,i.prototype.data=l.newBuffer([]),i.prototype.compressed=!1,i.prototype.blk_id=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(16).sint32(e.file_num),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&t.uint32(26).bytes(e.data),e.compressed!=null&&Object.hasOwnProperty.call(e,"compressed")&&t.uint32(32).bool(e.compressed),e.blk_id!=null&&Object.hasOwnProperty.call(e,"blk_id")&&t.uint32(40).uint32(e.blk_id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferBlock;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.file_num=e.sint32();break}case 3:{d.data=e.bytes();break}case 4:{d.compressed=e.bool();break}case 5:{d.blk_id=e.uint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||l.isString(e.data))?"data: buffer expected":e.compressed!=null&&e.hasOwnProperty("compressed")&&typeof e.compressed!="boolean"?"compressed: boolean expected":e.blk_id!=null&&e.hasOwnProperty("blk_id")&&!l.isInteger(e.blk_id)?"blk_id: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferBlock)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferBlock;return e.id!=null&&(n.id=e.id|0),e.file_num!=null&&(n.file_num=e.file_num|0),e.data!=null&&(typeof e.data=="string"?l.base64.decode(e.data,n.data=l.newBuffer(l.base64.length(e.data)),0):e.data.length>=0&&(n.data=e.data)),e.compressed!=null&&(n.compressed=!!e.compressed),e.blk_id!=null&&(n.blk_id=e.blk_id>>>0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.file_num=0,t.bytes===String?n.data="":(n.data=[],t.bytes!==Array&&(n.data=l.newBuffer(n.data))),n.compressed=!1,n.blk_id=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),e.data!=null&&e.hasOwnProperty("data")&&(n.data=t.bytes===String?l.base64.encode(e.data,0,e.data.length):t.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.compressed!=null&&e.hasOwnProperty("compressed")&&(n.compressed=e.compressed),e.blk_id!=null&&e.hasOwnProperty("blk_id")&&(n.blk_id=e.blk_id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferBlock"},i}(),p.FileTransferError=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.error="",i.prototype.file_num=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.error!=null&&Object.hasOwnProperty.call(e,"error")&&t.uint32(18).string(e.error),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(24).sint32(e.file_num),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferError;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.error=e.string();break}case 3:{d.file_num=e.sint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.error!=null&&e.hasOwnProperty("error")&&!l.isString(e.error)?"error: string expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferError)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferError;return e.id!=null&&(n.id=e.id|0),e.error!=null&&(n.error=String(e.error)),e.file_num!=null&&(n.file_num=e.file_num|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.error="",n.file_num=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.error!=null&&e.hasOwnProperty("error")&&(n.error=e.error),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferError"},i}(),p.FileTransferSendRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.include_hidden=!1,i.prototype.file_num=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.include_hidden!=null&&Object.hasOwnProperty.call(e,"include_hidden")&&t.uint32(24).bool(e.include_hidden),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(32).int32(e.file_num),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferSendRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.include_hidden=e.bool();break}case 4:{d.file_num=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&typeof e.include_hidden!="boolean"?"include_hidden: boolean expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferSendRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferSendRequest;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.include_hidden!=null&&(n.include_hidden=!!e.include_hidden),e.file_num!=null&&(n.file_num=e.file_num|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path="",n.include_hidden=!1,n.file_num=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.include_hidden!=null&&e.hasOwnProperty("include_hidden")&&(n.include_hidden=e.include_hidden),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferSendRequest"},i}(),p.FileTransferSendConfirmRequest=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.id=0,i.prototype.file_num=0,i.prototype.skip=null,i.prototype.offset_blk=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["skip","offset_blk"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.id!=null&&Object.hasOwnProperty.call(t,"id")&&n.uint32(8).int32(t.id),t.file_num!=null&&Object.hasOwnProperty.call(t,"file_num")&&n.uint32(16).sint32(t.file_num),t.skip!=null&&Object.hasOwnProperty.call(t,"skip")&&n.uint32(24).bool(t.skip),t.offset_blk!=null&&Object.hasOwnProperty.call(t,"offset_blk")&&n.uint32(32).uint32(t.offset_blk),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.FileTransferSendConfirmRequest;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.id=t.int32();break}case 2:{c.file_num=t.sint32();break}case 3:{c.skip=t.bool();break}case 4:{c.offset_blk=t.uint32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.id!=null&&t.hasOwnProperty("id")&&!l.isInteger(t.id))return"id: integer expected";if(t.file_num!=null&&t.hasOwnProperty("file_num")&&!l.isInteger(t.file_num))return"file_num: integer expected";if(t.skip!=null&&t.hasOwnProperty("skip")&&(r.union=1,typeof t.skip!="boolean"))return"skip: boolean expected";if(t.offset_blk!=null&&t.hasOwnProperty("offset_blk")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.offset_blk))return"offset_blk: integer expected"}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.FileTransferSendConfirmRequest)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.FileTransferSendConfirmRequest;return t.id!=null&&(r.id=t.id|0),t.file_num!=null&&(r.file_num=t.file_num|0),t.skip!=null&&(r.skip=!!t.skip),t.offset_blk!=null&&(r.offset_blk=t.offset_blk>>>0),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(r.id=0,r.file_num=0),t.id!=null&&t.hasOwnProperty("id")&&(r.id=t.id),t.file_num!=null&&t.hasOwnProperty("file_num")&&(r.file_num=t.file_num),t.skip!=null&&t.hasOwnProperty("skip")&&(r.skip=t.skip,n.oneofs&&(r.union="skip")),t.offset_blk!=null&&t.hasOwnProperty("offset_blk")&&(r.offset_blk=t.offset_blk,n.oneofs&&(r.union="offset_blk")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.FileTransferSendConfirmRequest"},i}(),p.FileTransferDone=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.file_num=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(16).sint32(e.file_num),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferDone;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.file_num=e.sint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferDone)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferDone;return e.id!=null&&(n.id=e.id|0),e.file_num!=null&&(n.file_num=e.file_num|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.file_num=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferDone"},i}(),p.FileTransferReceiveRequest=function(){function i(o){if(this.files=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.files=l.emptyArray,i.prototype.file_num=0,i.prototype.total_size=l.Long?l.Long.fromBits(0,0,!0):0,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.files!=null&&e.files.length)for(let n=0;n<e.files.length;++n)u.hbb.FileEntry.encode(e.files[n],t.uint32(26).fork()).ldelim();return e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(32).int32(e.file_num),e.total_size!=null&&Object.hasOwnProperty.call(e,"total_size")&&t.uint32(40).uint64(e.total_size),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileTransferReceiveRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.files&&d.files.length||(d.files=[]),d.files.push(u.hbb.FileEntry.decode(e,e.uint32(),void 0,r+1));break}case 4:{d.file_num=e.int32();break}case 5:{d.total_size=e.uint64();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id))return"id: integer expected";if(e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path))return"path: string expected";if(e.files!=null&&e.hasOwnProperty("files")){if(!Array.isArray(e.files))return"files: array expected";for(let n=0;n<e.files.length;++n){let r=u.hbb.FileEntry.verify(e.files[n],t+1);if(r)return"files."+r}}return e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":e.total_size!=null&&e.hasOwnProperty("total_size")&&!l.isInteger(e.total_size)&&!(e.total_size&&l.isInteger(e.total_size.low)&&l.isInteger(e.total_size.high))?"total_size: integer|Long expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.FileTransferReceiveRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileTransferReceiveRequest;if(e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.files){if(!Array.isArray(e.files))throw TypeError(".hbb.FileTransferReceiveRequest.files: array expected");n.files=[];for(let r=0;r<e.files.length;++r){if(typeof e.files[r]!="object")throw TypeError(".hbb.FileTransferReceiveRequest.files: object expected");n.files[r]=u.hbb.FileEntry.fromObject(e.files[r],t+1)}}return e.file_num!=null&&(n.file_num=e.file_num|0),e.total_size!=null&&(l.Long?(n.total_size=l.Long.fromValue(e.total_size)).unsigned=!0:typeof e.total_size=="string"?n.total_size=parseInt(e.total_size,10):typeof e.total_size=="number"?n.total_size=e.total_size:typeof e.total_size=="object"&&(n.total_size=new l.LongBits(e.total_size.low>>>0,e.total_size.high>>>0).toNumber(!0))),n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.files=[]),t.defaults)if(n.id=0,n.path="",n.file_num=0,l.Long){let r=new l.Long(0,0,!0);n.total_size=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.total_size=t.longs===String?"0":0;if(e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.files&&e.files.length){n.files=[];for(let r=0;r<e.files.length;++r)n.files[r]=u.hbb.FileEntry.toObject(e.files[r],t)}return e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),e.total_size!=null&&e.hasOwnProperty("total_size")&&(typeof e.total_size=="number"?n.total_size=t.longs===String?String(e.total_size):e.total_size:n.total_size=t.longs===String?l.Long.prototype.toString.call(e.total_size):t.longs===Number?new l.LongBits(e.total_size.low>>>0,e.total_size.high>>>0).toNumber(!0):e.total_size),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileTransferReceiveRequest"},i}(),p.FileRemoveDir=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.recursive=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.recursive!=null&&Object.hasOwnProperty.call(e,"recursive")&&t.uint32(24).bool(e.recursive),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileRemoveDir;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.recursive=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.recursive!=null&&e.hasOwnProperty("recursive")&&typeof e.recursive!="boolean"?"recursive: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileRemoveDir)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileRemoveDir;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.recursive!=null&&(n.recursive=!!e.recursive),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path="",n.recursive=!1),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.recursive!=null&&e.hasOwnProperty("recursive")&&(n.recursive=e.recursive),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileRemoveDir"},i}(),p.FileRemoveFile=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.prototype.file_num=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),e.file_num!=null&&Object.hasOwnProperty.call(e,"file_num")&&t.uint32(24).sint32(e.file_num),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileRemoveFile;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}case 3:{d.file_num=e.sint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":e.file_num!=null&&e.hasOwnProperty("file_num")&&!l.isInteger(e.file_num)?"file_num: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileRemoveFile)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileRemoveFile;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),e.file_num!=null&&(n.file_num=e.file_num|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path="",n.file_num=0),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),e.file_num!=null&&e.hasOwnProperty("file_num")&&(n.file_num=e.file_num),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileRemoveFile"},i}(),p.FileDirCreate=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.path="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(8).int32(e.id),e.path!=null&&Object.hasOwnProperty.call(e,"path")&&t.uint32(18).string(e.path),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.FileDirCreate;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.int32();break}case 2:{d.path=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.path!=null&&e.hasOwnProperty("path")&&!l.isString(e.path)?"path: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.FileDirCreate)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.FileDirCreate;return e.id!=null&&(n.id=e.id|0),e.path!=null&&(n.path=String(e.path)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.path=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.path!=null&&e.hasOwnProperty("path")&&(n.path=e.path),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.FileDirCreate"},i}(),p.CliprdrMonitorReady=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrMonitorReady;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrMonitorReady)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");return new u.hbb.CliprdrMonitorReady},i.toObject=function(){return{}},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrMonitorReady"},i}(),p.CliprdrFormat=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=0,i.prototype.format="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(16).int32(e.id),e.format!=null&&Object.hasOwnProperty.call(e,"format")&&t.uint32(26).string(e.format),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrFormat;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.id=e.int32();break}case 3:{d.format=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isInteger(e.id)?"id: integer expected":e.format!=null&&e.hasOwnProperty("format")&&!l.isString(e.format)?"format: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrFormat)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrFormat;return e.id!=null&&(n.id=e.id|0),e.format!=null&&(n.format=String(e.format)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id=0,n.format=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.format!=null&&e.hasOwnProperty("format")&&(n.format=e.format),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrFormat"},i}(),p.CliprdrServerFormatList=function(){function i(o){if(this.formats=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.formats=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.formats!=null&&e.formats.length)for(let n=0;n<e.formats.length;++n)u.hbb.CliprdrFormat.encode(e.formats[n],t.uint32(18).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrServerFormatList;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.formats&&d.formats.length||(d.formats=[]),d.formats.push(u.hbb.CliprdrFormat.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.formats!=null&&e.hasOwnProperty("formats")){if(!Array.isArray(e.formats))return"formats: array expected";for(let n=0;n<e.formats.length;++n){let r=u.hbb.CliprdrFormat.verify(e.formats[n],t+1);if(r)return"formats."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrServerFormatList)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrServerFormatList;if(e.formats){if(!Array.isArray(e.formats))throw TypeError(".hbb.CliprdrServerFormatList.formats: array expected");n.formats=[];for(let r=0;r<e.formats.length;++r){if(typeof e.formats[r]!="object")throw TypeError(".hbb.CliprdrServerFormatList.formats: object expected");n.formats[r]=u.hbb.CliprdrFormat.fromObject(e.formats[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.formats=[]),e.formats&&e.formats.length){n.formats=[];for(let r=0;r<e.formats.length;++r)n.formats[r]=u.hbb.CliprdrFormat.toObject(e.formats[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrServerFormatList"},i}(),p.CliprdrServerFormatListResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.msg_flags=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.msg_flags!=null&&Object.hasOwnProperty.call(e,"msg_flags")&&t.uint32(16).int32(e.msg_flags),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrServerFormatListResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.msg_flags=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&!l.isInteger(e.msg_flags)?"msg_flags: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrServerFormatListResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrServerFormatListResponse;return e.msg_flags!=null&&(n.msg_flags=e.msg_flags|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.msg_flags=0),e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&(n.msg_flags=e.msg_flags),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrServerFormatListResponse"},i}(),p.CliprdrServerFormatDataRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.requested_format_id=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.requested_format_id!=null&&Object.hasOwnProperty.call(e,"requested_format_id")&&t.uint32(16).int32(e.requested_format_id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrServerFormatDataRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.requested_format_id=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.requested_format_id!=null&&e.hasOwnProperty("requested_format_id")&&!l.isInteger(e.requested_format_id)?"requested_format_id: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrServerFormatDataRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrServerFormatDataRequest;return e.requested_format_id!=null&&(n.requested_format_id=e.requested_format_id|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.requested_format_id=0),e.requested_format_id!=null&&e.hasOwnProperty("requested_format_id")&&(n.requested_format_id=e.requested_format_id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrServerFormatDataRequest"},i}(),p.CliprdrServerFormatDataResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.msg_flags=0,i.prototype.format_data=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.msg_flags!=null&&Object.hasOwnProperty.call(e,"msg_flags")&&t.uint32(16).int32(e.msg_flags),e.format_data!=null&&Object.hasOwnProperty.call(e,"format_data")&&t.uint32(26).bytes(e.format_data),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrServerFormatDataResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.msg_flags=e.int32();break}case 3:{d.format_data=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&!l.isInteger(e.msg_flags)?"msg_flags: integer expected":e.format_data!=null&&e.hasOwnProperty("format_data")&&!(e.format_data&&typeof e.format_data.length=="number"||l.isString(e.format_data))?"format_data: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrServerFormatDataResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrServerFormatDataResponse;return e.msg_flags!=null&&(n.msg_flags=e.msg_flags|0),e.format_data!=null&&(typeof e.format_data=="string"?l.base64.decode(e.format_data,n.format_data=l.newBuffer(l.base64.length(e.format_data)),0):e.format_data.length>=0&&(n.format_data=e.format_data)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.msg_flags=0,t.bytes===String?n.format_data="":(n.format_data=[],t.bytes!==Array&&(n.format_data=l.newBuffer(n.format_data)))),e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&(n.msg_flags=e.msg_flags),e.format_data!=null&&e.hasOwnProperty("format_data")&&(n.format_data=t.bytes===String?l.base64.encode(e.format_data,0,e.format_data.length):t.bytes===Array?Array.prototype.slice.call(e.format_data):e.format_data),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrServerFormatDataResponse"},i}(),p.CliprdrFileContentsRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.stream_id=0,i.prototype.list_index=0,i.prototype.dw_flags=0,i.prototype.n_position_low=0,i.prototype.n_position_high=0,i.prototype.cb_requested=0,i.prototype.have_clip_data_id=!1,i.prototype.clip_data_id=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.stream_id!=null&&Object.hasOwnProperty.call(e,"stream_id")&&t.uint32(16).int32(e.stream_id),e.list_index!=null&&Object.hasOwnProperty.call(e,"list_index")&&t.uint32(24).int32(e.list_index),e.dw_flags!=null&&Object.hasOwnProperty.call(e,"dw_flags")&&t.uint32(32).int32(e.dw_flags),e.n_position_low!=null&&Object.hasOwnProperty.call(e,"n_position_low")&&t.uint32(40).int32(e.n_position_low),e.n_position_high!=null&&Object.hasOwnProperty.call(e,"n_position_high")&&t.uint32(48).int32(e.n_position_high),e.cb_requested!=null&&Object.hasOwnProperty.call(e,"cb_requested")&&t.uint32(56).int32(e.cb_requested),e.have_clip_data_id!=null&&Object.hasOwnProperty.call(e,"have_clip_data_id")&&t.uint32(64).bool(e.have_clip_data_id),e.clip_data_id!=null&&Object.hasOwnProperty.call(e,"clip_data_id")&&t.uint32(72).int32(e.clip_data_id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrFileContentsRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 2:{d.stream_id=e.int32();break}case 3:{d.list_index=e.int32();break}case 4:{d.dw_flags=e.int32();break}case 5:{d.n_position_low=e.int32();break}case 6:{d.n_position_high=e.int32();break}case 7:{d.cb_requested=e.int32();break}case 8:{d.have_clip_data_id=e.bool();break}case 9:{d.clip_data_id=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.stream_id!=null&&e.hasOwnProperty("stream_id")&&!l.isInteger(e.stream_id)?"stream_id: integer expected":e.list_index!=null&&e.hasOwnProperty("list_index")&&!l.isInteger(e.list_index)?"list_index: integer expected":e.dw_flags!=null&&e.hasOwnProperty("dw_flags")&&!l.isInteger(e.dw_flags)?"dw_flags: integer expected":e.n_position_low!=null&&e.hasOwnProperty("n_position_low")&&!l.isInteger(e.n_position_low)?"n_position_low: integer expected":e.n_position_high!=null&&e.hasOwnProperty("n_position_high")&&!l.isInteger(e.n_position_high)?"n_position_high: integer expected":e.cb_requested!=null&&e.hasOwnProperty("cb_requested")&&!l.isInteger(e.cb_requested)?"cb_requested: integer expected":e.have_clip_data_id!=null&&e.hasOwnProperty("have_clip_data_id")&&typeof e.have_clip_data_id!="boolean"?"have_clip_data_id: boolean expected":e.clip_data_id!=null&&e.hasOwnProperty("clip_data_id")&&!l.isInteger(e.clip_data_id)?"clip_data_id: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrFileContentsRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrFileContentsRequest;return e.stream_id!=null&&(n.stream_id=e.stream_id|0),e.list_index!=null&&(n.list_index=e.list_index|0),e.dw_flags!=null&&(n.dw_flags=e.dw_flags|0),e.n_position_low!=null&&(n.n_position_low=e.n_position_low|0),e.n_position_high!=null&&(n.n_position_high=e.n_position_high|0),e.cb_requested!=null&&(n.cb_requested=e.cb_requested|0),e.have_clip_data_id!=null&&(n.have_clip_data_id=!!e.have_clip_data_id),e.clip_data_id!=null&&(n.clip_data_id=e.clip_data_id|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.stream_id=0,n.list_index=0,n.dw_flags=0,n.n_position_low=0,n.n_position_high=0,n.cb_requested=0,n.have_clip_data_id=!1,n.clip_data_id=0),e.stream_id!=null&&e.hasOwnProperty("stream_id")&&(n.stream_id=e.stream_id),e.list_index!=null&&e.hasOwnProperty("list_index")&&(n.list_index=e.list_index),e.dw_flags!=null&&e.hasOwnProperty("dw_flags")&&(n.dw_flags=e.dw_flags),e.n_position_low!=null&&e.hasOwnProperty("n_position_low")&&(n.n_position_low=e.n_position_low),e.n_position_high!=null&&e.hasOwnProperty("n_position_high")&&(n.n_position_high=e.n_position_high),e.cb_requested!=null&&e.hasOwnProperty("cb_requested")&&(n.cb_requested=e.cb_requested),e.have_clip_data_id!=null&&e.hasOwnProperty("have_clip_data_id")&&(n.have_clip_data_id=e.have_clip_data_id),e.clip_data_id!=null&&e.hasOwnProperty("clip_data_id")&&(n.clip_data_id=e.clip_data_id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrFileContentsRequest"},i}(),p.CliprdrFileContentsResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.msg_flags=0,i.prototype.stream_id=0,i.prototype.requested_data=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.msg_flags!=null&&Object.hasOwnProperty.call(e,"msg_flags")&&t.uint32(24).int32(e.msg_flags),e.stream_id!=null&&Object.hasOwnProperty.call(e,"stream_id")&&t.uint32(32).int32(e.stream_id),e.requested_data!=null&&Object.hasOwnProperty.call(e,"requested_data")&&t.uint32(42).bytes(e.requested_data),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrFileContentsResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 3:{d.msg_flags=e.int32();break}case 4:{d.stream_id=e.int32();break}case 5:{d.requested_data=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&!l.isInteger(e.msg_flags)?"msg_flags: integer expected":e.stream_id!=null&&e.hasOwnProperty("stream_id")&&!l.isInteger(e.stream_id)?"stream_id: integer expected":e.requested_data!=null&&e.hasOwnProperty("requested_data")&&!(e.requested_data&&typeof e.requested_data.length=="number"||l.isString(e.requested_data))?"requested_data: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrFileContentsResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CliprdrFileContentsResponse;return e.msg_flags!=null&&(n.msg_flags=e.msg_flags|0),e.stream_id!=null&&(n.stream_id=e.stream_id|0),e.requested_data!=null&&(typeof e.requested_data=="string"?l.base64.decode(e.requested_data,n.requested_data=l.newBuffer(l.base64.length(e.requested_data)),0):e.requested_data.length>=0&&(n.requested_data=e.requested_data)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.msg_flags=0,n.stream_id=0,t.bytes===String?n.requested_data="":(n.requested_data=[],t.bytes!==Array&&(n.requested_data=l.newBuffer(n.requested_data)))),e.msg_flags!=null&&e.hasOwnProperty("msg_flags")&&(n.msg_flags=e.msg_flags),e.stream_id!=null&&e.hasOwnProperty("stream_id")&&(n.stream_id=e.stream_id),e.requested_data!=null&&e.hasOwnProperty("requested_data")&&(n.requested_data=t.bytes===String?l.base64.encode(e.requested_data,0,e.requested_data.length):t.bytes===Array?Array.prototype.slice.call(e.requested_data):e.requested_data),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrFileContentsResponse"},i}(),p.CliprdrTryEmpty=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CliprdrTryEmpty;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.CliprdrTryEmpty)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");return new u.hbb.CliprdrTryEmpty},i.toObject=function(){return{}},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CliprdrTryEmpty"},i}(),p.Cliprdr=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.ready=null,i.prototype.format_list=null,i.prototype.format_list_response=null,i.prototype.format_data_request=null,i.prototype.format_data_response=null,i.prototype.file_contents_request=null,i.prototype.file_contents_response=null,i.prototype.try_empty=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["ready","format_list","format_list_response","format_data_request","format_data_response","file_contents_request","file_contents_response","try_empty"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.ready!=null&&Object.hasOwnProperty.call(t,"ready")&&u.hbb.CliprdrMonitorReady.encode(t.ready,n.uint32(10).fork()).ldelim(),t.format_list!=null&&Object.hasOwnProperty.call(t,"format_list")&&u.hbb.CliprdrServerFormatList.encode(t.format_list,n.uint32(18).fork()).ldelim(),t.format_list_response!=null&&Object.hasOwnProperty.call(t,"format_list_response")&&u.hbb.CliprdrServerFormatListResponse.encode(t.format_list_response,n.uint32(26).fork()).ldelim(),t.format_data_request!=null&&Object.hasOwnProperty.call(t,"format_data_request")&&u.hbb.CliprdrServerFormatDataRequest.encode(t.format_data_request,n.uint32(34).fork()).ldelim(),t.format_data_response!=null&&Object.hasOwnProperty.call(t,"format_data_response")&&u.hbb.CliprdrServerFormatDataResponse.encode(t.format_data_response,n.uint32(42).fork()).ldelim(),t.file_contents_request!=null&&Object.hasOwnProperty.call(t,"file_contents_request")&&u.hbb.CliprdrFileContentsRequest.encode(t.file_contents_request,n.uint32(50).fork()).ldelim(),t.file_contents_response!=null&&Object.hasOwnProperty.call(t,"file_contents_response")&&u.hbb.CliprdrFileContentsResponse.encode(t.file_contents_response,n.uint32(58).fork()).ldelim(),t.try_empty!=null&&Object.hasOwnProperty.call(t,"try_empty")&&u.hbb.CliprdrTryEmpty.encode(t.try_empty,n.uint32(66).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.Cliprdr;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.ready=u.hbb.CliprdrMonitorReady.decode(t,t.uint32(),void 0,f+1);break}case 2:{c.format_list=u.hbb.CliprdrServerFormatList.decode(t,t.uint32(),void 0,f+1);break}case 3:{c.format_list_response=u.hbb.CliprdrServerFormatListResponse.decode(t,t.uint32(),void 0,f+1);break}case 4:{c.format_data_request=u.hbb.CliprdrServerFormatDataRequest.decode(t,t.uint32(),void 0,f+1);break}case 5:{c.format_data_response=u.hbb.CliprdrServerFormatDataResponse.decode(t,t.uint32(),void 0,f+1);break}case 6:{c.file_contents_request=u.hbb.CliprdrFileContentsRequest.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.file_contents_response=u.hbb.CliprdrFileContentsResponse.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.try_empty=u.hbb.CliprdrTryEmpty.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.ready!=null&&t.hasOwnProperty("ready")){r.union=1;{let f=u.hbb.CliprdrMonitorReady.verify(t.ready,n+1);if(f)return"ready."+f}}if(t.format_list!=null&&t.hasOwnProperty("format_list")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrServerFormatList.verify(t.format_list,n+1);if(f)return"format_list."+f}}if(t.format_list_response!=null&&t.hasOwnProperty("format_list_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrServerFormatListResponse.verify(t.format_list_response,n+1);if(f)return"format_list_response."+f}}if(t.format_data_request!=null&&t.hasOwnProperty("format_data_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrServerFormatDataRequest.verify(t.format_data_request,n+1);if(f)return"format_data_request."+f}}if(t.format_data_response!=null&&t.hasOwnProperty("format_data_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrServerFormatDataResponse.verify(t.format_data_response,n+1);if(f)return"format_data_response."+f}}if(t.file_contents_request!=null&&t.hasOwnProperty("file_contents_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrFileContentsRequest.verify(t.file_contents_request,n+1);if(f)return"file_contents_request."+f}}if(t.file_contents_response!=null&&t.hasOwnProperty("file_contents_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrFileContentsResponse.verify(t.file_contents_response,n+1);if(f)return"file_contents_response."+f}}if(t.try_empty!=null&&t.hasOwnProperty("try_empty")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CliprdrTryEmpty.verify(t.try_empty,n+1);if(f)return"try_empty."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.Cliprdr)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.Cliprdr;if(t.ready!=null){if(typeof t.ready!="object")throw TypeError(".hbb.Cliprdr.ready: object expected");r.ready=u.hbb.CliprdrMonitorReady.fromObject(t.ready,n+1)}if(t.format_list!=null){if(typeof t.format_list!="object")throw TypeError(".hbb.Cliprdr.format_list: object expected");r.format_list=u.hbb.CliprdrServerFormatList.fromObject(t.format_list,n+1)}if(t.format_list_response!=null){if(typeof t.format_list_response!="object")throw TypeError(".hbb.Cliprdr.format_list_response: object expected");r.format_list_response=u.hbb.CliprdrServerFormatListResponse.fromObject(t.format_list_response,n+1)}if(t.format_data_request!=null){if(typeof t.format_data_request!="object")throw TypeError(".hbb.Cliprdr.format_data_request: object expected");r.format_data_request=u.hbb.CliprdrServerFormatDataRequest.fromObject(t.format_data_request,n+1)}if(t.format_data_response!=null){if(typeof t.format_data_response!="object")throw TypeError(".hbb.Cliprdr.format_data_response: object expected");r.format_data_response=u.hbb.CliprdrServerFormatDataResponse.fromObject(t.format_data_response,n+1)}if(t.file_contents_request!=null){if(typeof t.file_contents_request!="object")throw TypeError(".hbb.Cliprdr.file_contents_request: object expected");r.file_contents_request=u.hbb.CliprdrFileContentsRequest.fromObject(t.file_contents_request,n+1)}if(t.file_contents_response!=null){if(typeof t.file_contents_response!="object")throw TypeError(".hbb.Cliprdr.file_contents_response: object expected");r.file_contents_response=u.hbb.CliprdrFileContentsResponse.fromObject(t.file_contents_response,n+1)}if(t.try_empty!=null){if(typeof t.try_empty!="object")throw TypeError(".hbb.Cliprdr.try_empty: object expected");r.try_empty=u.hbb.CliprdrTryEmpty.fromObject(t.try_empty,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.ready!=null&&t.hasOwnProperty("ready")&&(r.ready=u.hbb.CliprdrMonitorReady.toObject(t.ready,n),n.oneofs&&(r.union="ready")),t.format_list!=null&&t.hasOwnProperty("format_list")&&(r.format_list=u.hbb.CliprdrServerFormatList.toObject(t.format_list,n),n.oneofs&&(r.union="format_list")),t.format_list_response!=null&&t.hasOwnProperty("format_list_response")&&(r.format_list_response=u.hbb.CliprdrServerFormatListResponse.toObject(t.format_list_response,n),n.oneofs&&(r.union="format_list_response")),t.format_data_request!=null&&t.hasOwnProperty("format_data_request")&&(r.format_data_request=u.hbb.CliprdrServerFormatDataRequest.toObject(t.format_data_request,n),n.oneofs&&(r.union="format_data_request")),t.format_data_response!=null&&t.hasOwnProperty("format_data_response")&&(r.format_data_response=u.hbb.CliprdrServerFormatDataResponse.toObject(t.format_data_response,n),n.oneofs&&(r.union="format_data_response")),t.file_contents_request!=null&&t.hasOwnProperty("file_contents_request")&&(r.file_contents_request=u.hbb.CliprdrFileContentsRequest.toObject(t.file_contents_request,n),n.oneofs&&(r.union="file_contents_request")),t.file_contents_response!=null&&t.hasOwnProperty("file_contents_response")&&(r.file_contents_response=u.hbb.CliprdrFileContentsResponse.toObject(t.file_contents_response,n),n.oneofs&&(r.union="file_contents_response")),t.try_empty!=null&&t.hasOwnProperty("try_empty")&&(r.try_empty=u.hbb.CliprdrTryEmpty.toObject(t.try_empty,n),n.oneofs&&(r.union="try_empty")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.Cliprdr"},i}(),p.Resolution=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.width=0,i.prototype.height=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(8).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(16).int32(e.height),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.Resolution;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.width=e.int32();break}case 2:{d.height=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.width!=null&&e.hasOwnProperty("width")&&!l.isInteger(e.width)?"width: integer expected":e.height!=null&&e.hasOwnProperty("height")&&!l.isInteger(e.height)?"height: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.Resolution)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.Resolution;return e.width!=null&&(n.width=e.width|0),e.height!=null&&(n.height=e.height|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.width=0,n.height=0),e.width!=null&&e.hasOwnProperty("width")&&(n.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(n.height=e.height),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.Resolution"},i}(),p.DisplayResolution=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.display=0,i.prototype.resolution=null,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.display!=null&&Object.hasOwnProperty.call(e,"display")&&t.uint32(8).int32(e.display),e.resolution!=null&&Object.hasOwnProperty.call(e,"resolution")&&u.hbb.Resolution.encode(e.resolution,t.uint32(18).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.DisplayResolution;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.display=e.int32();break}case 2:{d.resolution=u.hbb.Resolution.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.display!=null&&e.hasOwnProperty("display")&&!l.isInteger(e.display))return"display: integer expected";if(e.resolution!=null&&e.hasOwnProperty("resolution")){let n=u.hbb.Resolution.verify(e.resolution,t+1);if(n)return"resolution."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.DisplayResolution)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.DisplayResolution;if(e.display!=null&&(n.display=e.display|0),e.resolution!=null){if(typeof e.resolution!="object")throw TypeError(".hbb.DisplayResolution.resolution: object expected");n.resolution=u.hbb.Resolution.fromObject(e.resolution,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.display=0,n.resolution=null),e.display!=null&&e.hasOwnProperty("display")&&(n.display=e.display),e.resolution!=null&&e.hasOwnProperty("resolution")&&(n.resolution=u.hbb.Resolution.toObject(e.resolution,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.DisplayResolution"},i}(),p.SupportedResolutions=function(){function i(o){if(this.resolutions=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.resolutions=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.resolutions!=null&&e.resolutions.length)for(let n=0;n<e.resolutions.length;++n)u.hbb.Resolution.encode(e.resolutions[n],t.uint32(10).fork()).ldelim();return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SupportedResolutions;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.resolutions&&d.resolutions.length||(d.resolutions=[]),d.resolutions.push(u.hbb.Resolution.decode(e,e.uint32(),void 0,r+1));break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.resolutions!=null&&e.hasOwnProperty("resolutions")){if(!Array.isArray(e.resolutions))return"resolutions: array expected";for(let n=0;n<e.resolutions.length;++n){let r=u.hbb.Resolution.verify(e.resolutions[n],t+1);if(r)return"resolutions."+r}}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.SupportedResolutions)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SupportedResolutions;if(e.resolutions){if(!Array.isArray(e.resolutions))throw TypeError(".hbb.SupportedResolutions.resolutions: array expected");n.resolutions=[];for(let r=0;r<e.resolutions.length;++r){if(typeof e.resolutions[r]!="object")throw TypeError(".hbb.SupportedResolutions.resolutions: object expected");n.resolutions[r]=u.hbb.Resolution.fromObject(e.resolutions[r],t+1)}}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.resolutions=[]),e.resolutions&&e.resolutions.length){n.resolutions=[];for(let r=0;r<e.resolutions.length;++r)n.resolutions[r]=u.hbb.Resolution.toObject(e.resolutions[r],t)}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SupportedResolutions"},i}(),p.SwitchDisplay=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.display=0,i.prototype.x=0,i.prototype.y=0,i.prototype.width=0,i.prototype.height=0,i.prototype.cursor_embedded=!1,i.prototype.resolutions=null,i.prototype.original_resolution=null,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.display!=null&&Object.hasOwnProperty.call(e,"display")&&t.uint32(8).int32(e.display),e.x!=null&&Object.hasOwnProperty.call(e,"x")&&t.uint32(16).sint32(e.x),e.y!=null&&Object.hasOwnProperty.call(e,"y")&&t.uint32(24).sint32(e.y),e.width!=null&&Object.hasOwnProperty.call(e,"width")&&t.uint32(32).int32(e.width),e.height!=null&&Object.hasOwnProperty.call(e,"height")&&t.uint32(40).int32(e.height),e.cursor_embedded!=null&&Object.hasOwnProperty.call(e,"cursor_embedded")&&t.uint32(48).bool(e.cursor_embedded),e.resolutions!=null&&Object.hasOwnProperty.call(e,"resolutions")&&u.hbb.SupportedResolutions.encode(e.resolutions,t.uint32(58).fork()).ldelim(),e.original_resolution!=null&&Object.hasOwnProperty.call(e,"original_resolution")&&u.hbb.Resolution.encode(e.original_resolution,t.uint32(66).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SwitchDisplay;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.display=e.int32();break}case 2:{d.x=e.sint32();break}case 3:{d.y=e.sint32();break}case 4:{d.width=e.int32();break}case 5:{d.height=e.int32();break}case 6:{d.cursor_embedded=e.bool();break}case 7:{d.resolutions=u.hbb.SupportedResolutions.decode(e,e.uint32(),void 0,r+1);break}case 8:{d.original_resolution=u.hbb.Resolution.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.display!=null&&e.hasOwnProperty("display")&&!l.isInteger(e.display))return"display: integer expected";if(e.x!=null&&e.hasOwnProperty("x")&&!l.isInteger(e.x))return"x: integer expected";if(e.y!=null&&e.hasOwnProperty("y")&&!l.isInteger(e.y))return"y: integer expected";if(e.width!=null&&e.hasOwnProperty("width")&&!l.isInteger(e.width))return"width: integer expected";if(e.height!=null&&e.hasOwnProperty("height")&&!l.isInteger(e.height))return"height: integer expected";if(e.cursor_embedded!=null&&e.hasOwnProperty("cursor_embedded")&&typeof e.cursor_embedded!="boolean")return"cursor_embedded: boolean expected";if(e.resolutions!=null&&e.hasOwnProperty("resolutions")){let n=u.hbb.SupportedResolutions.verify(e.resolutions,t+1);if(n)return"resolutions."+n}if(e.original_resolution!=null&&e.hasOwnProperty("original_resolution")){let n=u.hbb.Resolution.verify(e.original_resolution,t+1);if(n)return"original_resolution."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.SwitchDisplay)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SwitchDisplay;if(e.display!=null&&(n.display=e.display|0),e.x!=null&&(n.x=e.x|0),e.y!=null&&(n.y=e.y|0),e.width!=null&&(n.width=e.width|0),e.height!=null&&(n.height=e.height|0),e.cursor_embedded!=null&&(n.cursor_embedded=!!e.cursor_embedded),e.resolutions!=null){if(typeof e.resolutions!="object")throw TypeError(".hbb.SwitchDisplay.resolutions: object expected");n.resolutions=u.hbb.SupportedResolutions.fromObject(e.resolutions,t+1)}if(e.original_resolution!=null){if(typeof e.original_resolution!="object")throw TypeError(".hbb.SwitchDisplay.original_resolution: object expected");n.original_resolution=u.hbb.Resolution.fromObject(e.original_resolution,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.display=0,n.x=0,n.y=0,n.width=0,n.height=0,n.cursor_embedded=!1,n.resolutions=null,n.original_resolution=null),e.display!=null&&e.hasOwnProperty("display")&&(n.display=e.display),e.x!=null&&e.hasOwnProperty("x")&&(n.x=e.x),e.y!=null&&e.hasOwnProperty("y")&&(n.y=e.y),e.width!=null&&e.hasOwnProperty("width")&&(n.width=e.width),e.height!=null&&e.hasOwnProperty("height")&&(n.height=e.height),e.cursor_embedded!=null&&e.hasOwnProperty("cursor_embedded")&&(n.cursor_embedded=e.cursor_embedded),e.resolutions!=null&&e.hasOwnProperty("resolutions")&&(n.resolutions=u.hbb.SupportedResolutions.toObject(e.resolutions,t)),e.original_resolution!=null&&e.hasOwnProperty("original_resolution")&&(n.original_resolution=u.hbb.Resolution.toObject(e.original_resolution,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SwitchDisplay"},i}(),p.CaptureDisplays=function(){function i(o){if(this.add=[],this.sub=[],this.set=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.add=l.emptyArray,i.prototype.sub=l.emptyArray,i.prototype.set=l.emptyArray,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.add!=null&&e.add.length){t.uint32(10).fork();for(let n=0;n<e.add.length;++n)t.int32(e.add[n]);t.ldelim()}if(e.sub!=null&&e.sub.length){t.uint32(18).fork();for(let n=0;n<e.sub.length;++n)t.int32(e.sub[n]);t.ldelim()}if(e.set!=null&&e.set.length){t.uint32(26).fork();for(let n=0;n<e.set.length;++n)t.int32(e.set[n]);t.ldelim()}return t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.CaptureDisplays;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{if(d.add&&d.add.length||(d.add=[]),(c&7)===2){let k=e.uint32()+e.pos;for(;e.pos<k;)d.add.push(e.int32())}else d.add.push(e.int32());break}case 2:{if(d.sub&&d.sub.length||(d.sub=[]),(c&7)===2){let k=e.uint32()+e.pos;for(;e.pos<k;)d.sub.push(e.int32())}else d.sub.push(e.int32());break}case 3:{if(d.set&&d.set.length||(d.set=[]),(c&7)===2){let k=e.uint32()+e.pos;for(;e.pos<k;)d.set.push(e.int32())}else d.set.push(e.int32());break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.add!=null&&e.hasOwnProperty("add")){if(!Array.isArray(e.add))return"add: array expected";for(let n=0;n<e.add.length;++n)if(!l.isInteger(e.add[n]))return"add: integer[] expected"}if(e.sub!=null&&e.hasOwnProperty("sub")){if(!Array.isArray(e.sub))return"sub: array expected";for(let n=0;n<e.sub.length;++n)if(!l.isInteger(e.sub[n]))return"sub: integer[] expected"}if(e.set!=null&&e.hasOwnProperty("set")){if(!Array.isArray(e.set))return"set: array expected";for(let n=0;n<e.set.length;++n)if(!l.isInteger(e.set[n]))return"set: integer[] expected"}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.CaptureDisplays)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.CaptureDisplays;if(e.add){if(!Array.isArray(e.add))throw TypeError(".hbb.CaptureDisplays.add: array expected");n.add=[];for(let r=0;r<e.add.length;++r)n.add[r]=e.add[r]|0}if(e.sub){if(!Array.isArray(e.sub))throw TypeError(".hbb.CaptureDisplays.sub: array expected");n.sub=[];for(let r=0;r<e.sub.length;++r)n.sub[r]=e.sub[r]|0}if(e.set){if(!Array.isArray(e.set))throw TypeError(".hbb.CaptureDisplays.set: array expected");n.set=[];for(let r=0;r<e.set.length;++r)n.set[r]=e.set[r]|0}return n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.add=[],n.sub=[],n.set=[]),e.add&&e.add.length){n.add=[];for(let r=0;r<e.add.length;++r)n.add[r]=e.add[r]}if(e.sub&&e.sub.length){n.sub=[];for(let r=0;r<e.sub.length;++r)n.sub[r]=e.sub[r]}if(e.set&&e.set.length){n.set=[];for(let r=0;r<e.set.length;++r)n.set[r]=e.set[r]}return n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.CaptureDisplays"},i}(),p.ToggleVirtualDisplay=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.display=0,i.prototype.on=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.display!=null&&Object.hasOwnProperty.call(e,"display")&&t.uint32(8).int32(e.display),e.on!=null&&Object.hasOwnProperty.call(e,"on")&&t.uint32(16).bool(e.on),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ToggleVirtualDisplay;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.display=e.int32();break}case 2:{d.on=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.display!=null&&e.hasOwnProperty("display")&&!l.isInteger(e.display)?"display: integer expected":e.on!=null&&e.hasOwnProperty("on")&&typeof e.on!="boolean"?"on: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ToggleVirtualDisplay)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ToggleVirtualDisplay;return e.display!=null&&(n.display=e.display|0),e.on!=null&&(n.on=!!e.on),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.display=0,n.on=!1),e.display!=null&&e.hasOwnProperty("display")&&(n.display=e.display),e.on!=null&&e.hasOwnProperty("on")&&(n.on=e.on),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ToggleVirtualDisplay"},i}(),p.TogglePrivacyMode=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.impl_key="",i.prototype.on=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.impl_key!=null&&Object.hasOwnProperty.call(e,"impl_key")&&t.uint32(10).string(e.impl_key),e.on!=null&&Object.hasOwnProperty.call(e,"on")&&t.uint32(16).bool(e.on),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TogglePrivacyMode;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.impl_key=e.string();break}case 2:{d.on=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.impl_key!=null&&e.hasOwnProperty("impl_key")&&!l.isString(e.impl_key)?"impl_key: string expected":e.on!=null&&e.hasOwnProperty("on")&&typeof e.on!="boolean"?"on: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TogglePrivacyMode)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TogglePrivacyMode;return e.impl_key!=null&&(n.impl_key=String(e.impl_key)),e.on!=null&&(n.on=!!e.on),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.impl_key="",n.on=!1),e.impl_key!=null&&e.hasOwnProperty("impl_key")&&(n.impl_key=e.impl_key),e.on!=null&&e.hasOwnProperty("on")&&(n.on=e.on),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TogglePrivacyMode"},i}(),p.PermissionInfo=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.permission=0,i.prototype.enabled=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.permission!=null&&Object.hasOwnProperty.call(e,"permission")&&t.uint32(8).int32(e.permission),e.enabled!=null&&Object.hasOwnProperty.call(e,"enabled")&&t.uint32(16).bool(e.enabled),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PermissionInfo;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.permission=e.int32();break}case 2:{d.enabled=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.permission!=null&&e.hasOwnProperty("permission"))switch(e.permission){default:return"permission: enum value expected";case 0:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}return e.enabled!=null&&e.hasOwnProperty("enabled")&&typeof e.enabled!="boolean"?"enabled: boolean expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.PermissionInfo)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PermissionInfo;switch(e.permission){default:if(typeof e.permission=="number"){n.permission=e.permission;break}break;case"Keyboard":case 0:n.permission=0;break;case"Clipboard":case 2:n.permission=2;break;case"Audio":case 3:n.permission=3;break;case"File":case 4:n.permission=4;break;case"Restart":case 5:n.permission=5;break;case"Recording":case 6:n.permission=6;break;case"BlockInput":case 7:n.permission=7;break;case"Camera":case 8:n.permission=8;break}return e.enabled!=null&&(n.enabled=!!e.enabled),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.permission=t.enums===String?"Keyboard":0,n.enabled=!1),e.permission!=null&&e.hasOwnProperty("permission")&&(n.permission=t.enums===String?u.hbb.PermissionInfo.Permission[e.permission]===void 0?e.permission:u.hbb.PermissionInfo.Permission[e.permission]:e.permission),e.enabled!=null&&e.hasOwnProperty("enabled")&&(n.enabled=e.enabled),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PermissionInfo"},i.Permission=function(){let o={},e=Object.create(o);return e[o[0]="Keyboard"]=0,e[o[2]="Clipboard"]=2,e[o[3]="Audio"]=3,e[o[4]="File"]=4,e[o[5]="Restart"]=5,e[o[6]="Recording"]=6,e[o[7]="BlockInput"]=7,e[o[8]="Camera"]=8,e}(),i}(),p.ImageQuality=function(){let i={},o=Object.create(i);return o[i[0]="NotSet"]=0,o[i[2]="Low"]=2,o[i[3]="Balanced"]=3,o[i[4]="Best"]=4,o}(),p.SupportedDecoding=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.ability_vp9=0,i.prototype.ability_h264=0,i.prototype.ability_h265=0,i.prototype.prefer=0,i.prototype.ability_vp8=0,i.prototype.ability_av1=0,i.prototype.i444=null,i.prototype.prefer_chroma=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.ability_vp9!=null&&Object.hasOwnProperty.call(e,"ability_vp9")&&t.uint32(8).int32(e.ability_vp9),e.ability_h264!=null&&Object.hasOwnProperty.call(e,"ability_h264")&&t.uint32(16).int32(e.ability_h264),e.ability_h265!=null&&Object.hasOwnProperty.call(e,"ability_h265")&&t.uint32(24).int32(e.ability_h265),e.prefer!=null&&Object.hasOwnProperty.call(e,"prefer")&&t.uint32(32).int32(e.prefer),e.ability_vp8!=null&&Object.hasOwnProperty.call(e,"ability_vp8")&&t.uint32(40).int32(e.ability_vp8),e.ability_av1!=null&&Object.hasOwnProperty.call(e,"ability_av1")&&t.uint32(48).int32(e.ability_av1),e.i444!=null&&Object.hasOwnProperty.call(e,"i444")&&u.hbb.CodecAbility.encode(e.i444,t.uint32(58).fork()).ldelim(),e.prefer_chroma!=null&&Object.hasOwnProperty.call(e,"prefer_chroma")&&t.uint32(64).int32(e.prefer_chroma),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SupportedDecoding;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.ability_vp9=e.int32();break}case 2:{d.ability_h264=e.int32();break}case 3:{d.ability_h265=e.int32();break}case 4:{d.prefer=e.int32();break}case 5:{d.ability_vp8=e.int32();break}case 6:{d.ability_av1=e.int32();break}case 7:{d.i444=u.hbb.CodecAbility.decode(e,e.uint32(),void 0,r+1);break}case 8:{d.prefer_chroma=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.ability_vp9!=null&&e.hasOwnProperty("ability_vp9")&&!l.isInteger(e.ability_vp9))return"ability_vp9: integer expected";if(e.ability_h264!=null&&e.hasOwnProperty("ability_h264")&&!l.isInteger(e.ability_h264))return"ability_h264: integer expected";if(e.ability_h265!=null&&e.hasOwnProperty("ability_h265")&&!l.isInteger(e.ability_h265))return"ability_h265: integer expected";if(e.prefer!=null&&e.hasOwnProperty("prefer"))switch(e.prefer){default:return"prefer: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:break}if(e.ability_vp8!=null&&e.hasOwnProperty("ability_vp8")&&!l.isInteger(e.ability_vp8))return"ability_vp8: integer expected";if(e.ability_av1!=null&&e.hasOwnProperty("ability_av1")&&!l.isInteger(e.ability_av1))return"ability_av1: integer expected";if(e.i444!=null&&e.hasOwnProperty("i444")){let n=u.hbb.CodecAbility.verify(e.i444,t+1);if(n)return"i444."+n}if(e.prefer_chroma!=null&&e.hasOwnProperty("prefer_chroma"))switch(e.prefer_chroma){default:return"prefer_chroma: enum value expected";case 0:case 1:break}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.SupportedDecoding)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SupportedDecoding;switch(e.ability_vp9!=null&&(n.ability_vp9=e.ability_vp9|0),e.ability_h264!=null&&(n.ability_h264=e.ability_h264|0),e.ability_h265!=null&&(n.ability_h265=e.ability_h265|0),e.prefer){default:if(typeof e.prefer=="number"){n.prefer=e.prefer;break}break;case"Auto":case 0:n.prefer=0;break;case"VP9":case 1:n.prefer=1;break;case"H264":case 2:n.prefer=2;break;case"H265":case 3:n.prefer=3;break;case"VP8":case 4:n.prefer=4;break;case"AV1":case 5:n.prefer=5;break}if(e.ability_vp8!=null&&(n.ability_vp8=e.ability_vp8|0),e.ability_av1!=null&&(n.ability_av1=e.ability_av1|0),e.i444!=null){if(typeof e.i444!="object")throw TypeError(".hbb.SupportedDecoding.i444: object expected");n.i444=u.hbb.CodecAbility.fromObject(e.i444,t+1)}switch(e.prefer_chroma){default:if(typeof e.prefer_chroma=="number"){n.prefer_chroma=e.prefer_chroma;break}break;case"I420":case 0:n.prefer_chroma=0;break;case"I444":case 1:n.prefer_chroma=1;break}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.ability_vp9=0,n.ability_h264=0,n.ability_h265=0,n.prefer=t.enums===String?"Auto":0,n.ability_vp8=0,n.ability_av1=0,n.i444=null,n.prefer_chroma=t.enums===String?"I420":0),e.ability_vp9!=null&&e.hasOwnProperty("ability_vp9")&&(n.ability_vp9=e.ability_vp9),e.ability_h264!=null&&e.hasOwnProperty("ability_h264")&&(n.ability_h264=e.ability_h264),e.ability_h265!=null&&e.hasOwnProperty("ability_h265")&&(n.ability_h265=e.ability_h265),e.prefer!=null&&e.hasOwnProperty("prefer")&&(n.prefer=t.enums===String?u.hbb.SupportedDecoding.PreferCodec[e.prefer]===void 0?e.prefer:u.hbb.SupportedDecoding.PreferCodec[e.prefer]:e.prefer),e.ability_vp8!=null&&e.hasOwnProperty("ability_vp8")&&(n.ability_vp8=e.ability_vp8),e.ability_av1!=null&&e.hasOwnProperty("ability_av1")&&(n.ability_av1=e.ability_av1),e.i444!=null&&e.hasOwnProperty("i444")&&(n.i444=u.hbb.CodecAbility.toObject(e.i444,t)),e.prefer_chroma!=null&&e.hasOwnProperty("prefer_chroma")&&(n.prefer_chroma=t.enums===String?u.hbb.Chroma[e.prefer_chroma]===void 0?e.prefer_chroma:u.hbb.Chroma[e.prefer_chroma]:e.prefer_chroma),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SupportedDecoding"},i.PreferCodec=function(){let o={},e=Object.create(o);return e[o[0]="Auto"]=0,e[o[1]="VP9"]=1,e[o[2]="H264"]=2,e[o[3]="H265"]=3,e[o[4]="VP8"]=4,e[o[5]="AV1"]=5,e}(),i}(),p.OptionMessage=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.image_quality=0,i.prototype.lock_after_session_end=0,i.prototype.show_remote_cursor=0,i.prototype.privacy_mode=0,i.prototype.block_input=0,i.prototype.custom_image_quality=0,i.prototype.disable_audio=0,i.prototype.disable_clipboard=0,i.prototype.enable_file_transfer=0,i.prototype.supported_decoding=null,i.prototype.custom_fps=0,i.prototype.disable_keyboard=0,i.prototype.follow_remote_cursor=0,i.prototype.follow_remote_window=0,i.prototype.disable_camera=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.image_quality!=null&&Object.hasOwnProperty.call(e,"image_quality")&&t.uint32(8).int32(e.image_quality),e.lock_after_session_end!=null&&Object.hasOwnProperty.call(e,"lock_after_session_end")&&t.uint32(16).int32(e.lock_after_session_end),e.show_remote_cursor!=null&&Object.hasOwnProperty.call(e,"show_remote_cursor")&&t.uint32(24).int32(e.show_remote_cursor),e.privacy_mode!=null&&Object.hasOwnProperty.call(e,"privacy_mode")&&t.uint32(32).int32(e.privacy_mode),e.block_input!=null&&Object.hasOwnProperty.call(e,"block_input")&&t.uint32(40).int32(e.block_input),e.custom_image_quality!=null&&Object.hasOwnProperty.call(e,"custom_image_quality")&&t.uint32(48).int32(e.custom_image_quality),e.disable_audio!=null&&Object.hasOwnProperty.call(e,"disable_audio")&&t.uint32(56).int32(e.disable_audio),e.disable_clipboard!=null&&Object.hasOwnProperty.call(e,"disable_clipboard")&&t.uint32(64).int32(e.disable_clipboard),e.enable_file_transfer!=null&&Object.hasOwnProperty.call(e,"enable_file_transfer")&&t.uint32(72).int32(e.enable_file_transfer),e.supported_decoding!=null&&Object.hasOwnProperty.call(e,"supported_decoding")&&u.hbb.SupportedDecoding.encode(e.supported_decoding,t.uint32(82).fork()).ldelim(),e.custom_fps!=null&&Object.hasOwnProperty.call(e,"custom_fps")&&t.uint32(88).int32(e.custom_fps),e.disable_keyboard!=null&&Object.hasOwnProperty.call(e,"disable_keyboard")&&t.uint32(96).int32(e.disable_keyboard),e.follow_remote_cursor!=null&&Object.hasOwnProperty.call(e,"follow_remote_cursor")&&t.uint32(120).int32(e.follow_remote_cursor),e.follow_remote_window!=null&&Object.hasOwnProperty.call(e,"follow_remote_window")&&t.uint32(128).int32(e.follow_remote_window),e.disable_camera!=null&&Object.hasOwnProperty.call(e,"disable_camera")&&t.uint32(136).int32(e.disable_camera),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.OptionMessage;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.image_quality=e.int32();break}case 2:{d.lock_after_session_end=e.int32();break}case 3:{d.show_remote_cursor=e.int32();break}case 4:{d.privacy_mode=e.int32();break}case 5:{d.block_input=e.int32();break}case 6:{d.custom_image_quality=e.int32();break}case 7:{d.disable_audio=e.int32();break}case 8:{d.disable_clipboard=e.int32();break}case 9:{d.enable_file_transfer=e.int32();break}case 10:{d.supported_decoding=u.hbb.SupportedDecoding.decode(e,e.uint32(),void 0,r+1);break}case 11:{d.custom_fps=e.int32();break}case 12:{d.disable_keyboard=e.int32();break}case 15:{d.follow_remote_cursor=e.int32();break}case 16:{d.follow_remote_window=e.int32();break}case 17:{d.disable_camera=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.image_quality!=null&&e.hasOwnProperty("image_quality"))switch(e.image_quality){default:return"image_quality: enum value expected";case 0:case 2:case 3:case 4:break}if(e.lock_after_session_end!=null&&e.hasOwnProperty("lock_after_session_end"))switch(e.lock_after_session_end){default:return"lock_after_session_end: enum value expected";case 0:case 1:case 2:break}if(e.show_remote_cursor!=null&&e.hasOwnProperty("show_remote_cursor"))switch(e.show_remote_cursor){default:return"show_remote_cursor: enum value expected";case 0:case 1:case 2:break}if(e.privacy_mode!=null&&e.hasOwnProperty("privacy_mode"))switch(e.privacy_mode){default:return"privacy_mode: enum value expected";case 0:case 1:case 2:break}if(e.block_input!=null&&e.hasOwnProperty("block_input"))switch(e.block_input){default:return"block_input: enum value expected";case 0:case 1:case 2:break}if(e.custom_image_quality!=null&&e.hasOwnProperty("custom_image_quality")&&!l.isInteger(e.custom_image_quality))return"custom_image_quality: integer expected";if(e.disable_audio!=null&&e.hasOwnProperty("disable_audio"))switch(e.disable_audio){default:return"disable_audio: enum value expected";case 0:case 1:case 2:break}if(e.disable_clipboard!=null&&e.hasOwnProperty("disable_clipboard"))switch(e.disable_clipboard){default:return"disable_clipboard: enum value expected";case 0:case 1:case 2:break}if(e.enable_file_transfer!=null&&e.hasOwnProperty("enable_file_transfer"))switch(e.enable_file_transfer){default:return"enable_file_transfer: enum value expected";case 0:case 1:case 2:break}if(e.supported_decoding!=null&&e.hasOwnProperty("supported_decoding")){let n=u.hbb.SupportedDecoding.verify(e.supported_decoding,t+1);if(n)return"supported_decoding."+n}if(e.custom_fps!=null&&e.hasOwnProperty("custom_fps")&&!l.isInteger(e.custom_fps))return"custom_fps: integer expected";if(e.disable_keyboard!=null&&e.hasOwnProperty("disable_keyboard"))switch(e.disable_keyboard){default:return"disable_keyboard: enum value expected";case 0:case 1:case 2:break}if(e.follow_remote_cursor!=null&&e.hasOwnProperty("follow_remote_cursor"))switch(e.follow_remote_cursor){default:return"follow_remote_cursor: enum value expected";case 0:case 1:case 2:break}if(e.follow_remote_window!=null&&e.hasOwnProperty("follow_remote_window"))switch(e.follow_remote_window){default:return"follow_remote_window: enum value expected";case 0:case 1:case 2:break}if(e.disable_camera!=null&&e.hasOwnProperty("disable_camera"))switch(e.disable_camera){default:return"disable_camera: enum value expected";case 0:case 1:case 2:break}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.OptionMessage)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.OptionMessage;switch(e.image_quality){default:if(typeof e.image_quality=="number"){n.image_quality=e.image_quality;break}break;case"NotSet":case 0:n.image_quality=0;break;case"Low":case 2:n.image_quality=2;break;case"Balanced":case 3:n.image_quality=3;break;case"Best":case 4:n.image_quality=4;break}switch(e.lock_after_session_end){default:if(typeof e.lock_after_session_end=="number"){n.lock_after_session_end=e.lock_after_session_end;break}break;case"NotSet":case 0:n.lock_after_session_end=0;break;case"No":case 1:n.lock_after_session_end=1;break;case"Yes":case 2:n.lock_after_session_end=2;break}switch(e.show_remote_cursor){default:if(typeof e.show_remote_cursor=="number"){n.show_remote_cursor=e.show_remote_cursor;break}break;case"NotSet":case 0:n.show_remote_cursor=0;break;case"No":case 1:n.show_remote_cursor=1;break;case"Yes":case 2:n.show_remote_cursor=2;break}switch(e.privacy_mode){default:if(typeof e.privacy_mode=="number"){n.privacy_mode=e.privacy_mode;break}break;case"NotSet":case 0:n.privacy_mode=0;break;case"No":case 1:n.privacy_mode=1;break;case"Yes":case 2:n.privacy_mode=2;break}switch(e.block_input){default:if(typeof e.block_input=="number"){n.block_input=e.block_input;break}break;case"NotSet":case 0:n.block_input=0;break;case"No":case 1:n.block_input=1;break;case"Yes":case 2:n.block_input=2;break}switch(e.custom_image_quality!=null&&(n.custom_image_quality=e.custom_image_quality|0),e.disable_audio){default:if(typeof e.disable_audio=="number"){n.disable_audio=e.disable_audio;break}break;case"NotSet":case 0:n.disable_audio=0;break;case"No":case 1:n.disable_audio=1;break;case"Yes":case 2:n.disable_audio=2;break}switch(e.disable_clipboard){default:if(typeof e.disable_clipboard=="number"){n.disable_clipboard=e.disable_clipboard;break}break;case"NotSet":case 0:n.disable_clipboard=0;break;case"No":case 1:n.disable_clipboard=1;break;case"Yes":case 2:n.disable_clipboard=2;break}switch(e.enable_file_transfer){default:if(typeof e.enable_file_transfer=="number"){n.enable_file_transfer=e.enable_file_transfer;break}break;case"NotSet":case 0:n.enable_file_transfer=0;break;case"No":case 1:n.enable_file_transfer=1;break;case"Yes":case 2:n.enable_file_transfer=2;break}if(e.supported_decoding!=null){if(typeof e.supported_decoding!="object")throw TypeError(".hbb.OptionMessage.supported_decoding: object expected");n.supported_decoding=u.hbb.SupportedDecoding.fromObject(e.supported_decoding,t+1)}switch(e.custom_fps!=null&&(n.custom_fps=e.custom_fps|0),e.disable_keyboard){default:if(typeof e.disable_keyboard=="number"){n.disable_keyboard=e.disable_keyboard;break}break;case"NotSet":case 0:n.disable_keyboard=0;break;case"No":case 1:n.disable_keyboard=1;break;case"Yes":case 2:n.disable_keyboard=2;break}switch(e.follow_remote_cursor){default:if(typeof e.follow_remote_cursor=="number"){n.follow_remote_cursor=e.follow_remote_cursor;break}break;case"NotSet":case 0:n.follow_remote_cursor=0;break;case"No":case 1:n.follow_remote_cursor=1;break;case"Yes":case 2:n.follow_remote_cursor=2;break}switch(e.follow_remote_window){default:if(typeof e.follow_remote_window=="number"){n.follow_remote_window=e.follow_remote_window;break}break;case"NotSet":case 0:n.follow_remote_window=0;break;case"No":case 1:n.follow_remote_window=1;break;case"Yes":case 2:n.follow_remote_window=2;break}switch(e.disable_camera){default:if(typeof e.disable_camera=="number"){n.disable_camera=e.disable_camera;break}break;case"NotSet":case 0:n.disable_camera=0;break;case"No":case 1:n.disable_camera=1;break;case"Yes":case 2:n.disable_camera=2;break}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.image_quality=t.enums===String?"NotSet":0,n.lock_after_session_end=t.enums===String?"NotSet":0,n.show_remote_cursor=t.enums===String?"NotSet":0,n.privacy_mode=t.enums===String?"NotSet":0,n.block_input=t.enums===String?"NotSet":0,n.custom_image_quality=0,n.disable_audio=t.enums===String?"NotSet":0,n.disable_clipboard=t.enums===String?"NotSet":0,n.enable_file_transfer=t.enums===String?"NotSet":0,n.supported_decoding=null,n.custom_fps=0,n.disable_keyboard=t.enums===String?"NotSet":0,n.follow_remote_cursor=t.enums===String?"NotSet":0,n.follow_remote_window=t.enums===String?"NotSet":0,n.disable_camera=t.enums===String?"NotSet":0),e.image_quality!=null&&e.hasOwnProperty("image_quality")&&(n.image_quality=t.enums===String?u.hbb.ImageQuality[e.image_quality]===void 0?e.image_quality:u.hbb.ImageQuality[e.image_quality]:e.image_quality),e.lock_after_session_end!=null&&e.hasOwnProperty("lock_after_session_end")&&(n.lock_after_session_end=t.enums===String?u.hbb.OptionMessage.BoolOption[e.lock_after_session_end]===void 0?e.lock_after_session_end:u.hbb.OptionMessage.BoolOption[e.lock_after_session_end]:e.lock_after_session_end),e.show_remote_cursor!=null&&e.hasOwnProperty("show_remote_cursor")&&(n.show_remote_cursor=t.enums===String?u.hbb.OptionMessage.BoolOption[e.show_remote_cursor]===void 0?e.show_remote_cursor:u.hbb.OptionMessage.BoolOption[e.show_remote_cursor]:e.show_remote_cursor),e.privacy_mode!=null&&e.hasOwnProperty("privacy_mode")&&(n.privacy_mode=t.enums===String?u.hbb.OptionMessage.BoolOption[e.privacy_mode]===void 0?e.privacy_mode:u.hbb.OptionMessage.BoolOption[e.privacy_mode]:e.privacy_mode),e.block_input!=null&&e.hasOwnProperty("block_input")&&(n.block_input=t.enums===String?u.hbb.OptionMessage.BoolOption[e.block_input]===void 0?e.block_input:u.hbb.OptionMessage.BoolOption[e.block_input]:e.block_input),e.custom_image_quality!=null&&e.hasOwnProperty("custom_image_quality")&&(n.custom_image_quality=e.custom_image_quality),e.disable_audio!=null&&e.hasOwnProperty("disable_audio")&&(n.disable_audio=t.enums===String?u.hbb.OptionMessage.BoolOption[e.disable_audio]===void 0?e.disable_audio:u.hbb.OptionMessage.BoolOption[e.disable_audio]:e.disable_audio),e.disable_clipboard!=null&&e.hasOwnProperty("disable_clipboard")&&(n.disable_clipboard=t.enums===String?u.hbb.OptionMessage.BoolOption[e.disable_clipboard]===void 0?e.disable_clipboard:u.hbb.OptionMessage.BoolOption[e.disable_clipboard]:e.disable_clipboard),e.enable_file_transfer!=null&&e.hasOwnProperty("enable_file_transfer")&&(n.enable_file_transfer=t.enums===String?u.hbb.OptionMessage.BoolOption[e.enable_file_transfer]===void 0?e.enable_file_transfer:u.hbb.OptionMessage.BoolOption[e.enable_file_transfer]:e.enable_file_transfer),e.supported_decoding!=null&&e.hasOwnProperty("supported_decoding")&&(n.supported_decoding=u.hbb.SupportedDecoding.toObject(e.supported_decoding,t)),e.custom_fps!=null&&e.hasOwnProperty("custom_fps")&&(n.custom_fps=e.custom_fps),e.disable_keyboard!=null&&e.hasOwnProperty("disable_keyboard")&&(n.disable_keyboard=t.enums===String?u.hbb.OptionMessage.BoolOption[e.disable_keyboard]===void 0?e.disable_keyboard:u.hbb.OptionMessage.BoolOption[e.disable_keyboard]:e.disable_keyboard),e.follow_remote_cursor!=null&&e.hasOwnProperty("follow_remote_cursor")&&(n.follow_remote_cursor=t.enums===String?u.hbb.OptionMessage.BoolOption[e.follow_remote_cursor]===void 0?e.follow_remote_cursor:u.hbb.OptionMessage.BoolOption[e.follow_remote_cursor]:e.follow_remote_cursor),e.follow_remote_window!=null&&e.hasOwnProperty("follow_remote_window")&&(n.follow_remote_window=t.enums===String?u.hbb.OptionMessage.BoolOption[e.follow_remote_window]===void 0?e.follow_remote_window:u.hbb.OptionMessage.BoolOption[e.follow_remote_window]:e.follow_remote_window),e.disable_camera!=null&&e.hasOwnProperty("disable_camera")&&(n.disable_camera=t.enums===String?u.hbb.OptionMessage.BoolOption[e.disable_camera]===void 0?e.disable_camera:u.hbb.OptionMessage.BoolOption[e.disable_camera]:e.disable_camera),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.OptionMessage"},i.BoolOption=function(){let o={},e=Object.create(o);return e[o[0]="NotSet"]=0,e[o[1]="No"]=1,e[o[2]="Yes"]=2,e}(),i}(),p.TestDelay=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.time=l.Long?l.Long.fromBits(0,0,!1):0,i.prototype.from_client=!1,i.prototype.last_delay=0,i.prototype.target_bitrate=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&t.uint32(8).int64(e.time),e.from_client!=null&&Object.hasOwnProperty.call(e,"from_client")&&t.uint32(16).bool(e.from_client),e.last_delay!=null&&Object.hasOwnProperty.call(e,"last_delay")&&t.uint32(24).uint32(e.last_delay),e.target_bitrate!=null&&Object.hasOwnProperty.call(e,"target_bitrate")&&t.uint32(32).uint32(e.target_bitrate),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.TestDelay;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.time=e.int64();break}case 2:{d.from_client=e.bool();break}case 3:{d.last_delay=e.uint32();break}case 4:{d.target_bitrate=e.uint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.time!=null&&e.hasOwnProperty("time")&&!l.isInteger(e.time)&&!(e.time&&l.isInteger(e.time.low)&&l.isInteger(e.time.high))?"time: integer|Long expected":e.from_client!=null&&e.hasOwnProperty("from_client")&&typeof e.from_client!="boolean"?"from_client: boolean expected":e.last_delay!=null&&e.hasOwnProperty("last_delay")&&!l.isInteger(e.last_delay)?"last_delay: integer expected":e.target_bitrate!=null&&e.hasOwnProperty("target_bitrate")&&!l.isInteger(e.target_bitrate)?"target_bitrate: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.TestDelay)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.TestDelay;return e.time!=null&&(l.Long?(n.time=l.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?n.time=parseInt(e.time,10):typeof e.time=="number"?n.time=e.time:typeof e.time=="object"&&(n.time=new l.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.from_client!=null&&(n.from_client=!!e.from_client),e.last_delay!=null&&(n.last_delay=e.last_delay>>>0),e.target_bitrate!=null&&(n.target_bitrate=e.target_bitrate>>>0),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(l.Long){let r=new l.Long(0,0,!1);n.time=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.time=t.longs===String?"0":0;n.from_client=!1,n.last_delay=0,n.target_bitrate=0}return e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?n.time=t.longs===String?String(e.time):e.time:n.time=t.longs===String?l.Long.prototype.toString.call(e.time):t.longs===Number?new l.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.from_client!=null&&e.hasOwnProperty("from_client")&&(n.from_client=e.from_client),e.last_delay!=null&&e.hasOwnProperty("last_delay")&&(n.last_delay=e.last_delay),e.target_bitrate!=null&&e.hasOwnProperty("target_bitrate")&&(n.target_bitrate=e.target_bitrate),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.TestDelay"},i}(),p.PublicKey=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.asymmetric_value=l.newBuffer([]),i.prototype.symmetric_value=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.asymmetric_value!=null&&Object.hasOwnProperty.call(e,"asymmetric_value")&&t.uint32(10).bytes(e.asymmetric_value),e.symmetric_value!=null&&Object.hasOwnProperty.call(e,"symmetric_value")&&t.uint32(18).bytes(e.symmetric_value),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PublicKey;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.asymmetric_value=e.bytes();break}case 2:{d.symmetric_value=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.asymmetric_value!=null&&e.hasOwnProperty("asymmetric_value")&&!(e.asymmetric_value&&typeof e.asymmetric_value.length=="number"||l.isString(e.asymmetric_value))?"asymmetric_value: buffer expected":e.symmetric_value!=null&&e.hasOwnProperty("symmetric_value")&&!(e.symmetric_value&&typeof e.symmetric_value.length=="number"||l.isString(e.symmetric_value))?"symmetric_value: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.PublicKey)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PublicKey;return e.asymmetric_value!=null&&(typeof e.asymmetric_value=="string"?l.base64.decode(e.asymmetric_value,n.asymmetric_value=l.newBuffer(l.base64.length(e.asymmetric_value)),0):e.asymmetric_value.length>=0&&(n.asymmetric_value=e.asymmetric_value)),e.symmetric_value!=null&&(typeof e.symmetric_value=="string"?l.base64.decode(e.symmetric_value,n.symmetric_value=l.newBuffer(l.base64.length(e.symmetric_value)),0):e.symmetric_value.length>=0&&(n.symmetric_value=e.symmetric_value)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.asymmetric_value="":(n.asymmetric_value=[],t.bytes!==Array&&(n.asymmetric_value=l.newBuffer(n.asymmetric_value))),t.bytes===String?n.symmetric_value="":(n.symmetric_value=[],t.bytes!==Array&&(n.symmetric_value=l.newBuffer(n.symmetric_value)))),e.asymmetric_value!=null&&e.hasOwnProperty("asymmetric_value")&&(n.asymmetric_value=t.bytes===String?l.base64.encode(e.asymmetric_value,0,e.asymmetric_value.length):t.bytes===Array?Array.prototype.slice.call(e.asymmetric_value):e.asymmetric_value),e.symmetric_value!=null&&e.hasOwnProperty("symmetric_value")&&(n.symmetric_value=t.bytes===String?l.base64.encode(e.symmetric_value,0,e.symmetric_value.length):t.bytes===Array?Array.prototype.slice.call(e.symmetric_value):e.symmetric_value),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PublicKey"},i}(),p.SignedId=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).bytes(e.id),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SignedId;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!(e.id&&typeof e.id.length=="number"||l.isString(e.id))?"id: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.SignedId)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SignedId;return e.id!=null&&(typeof e.id=="string"?l.base64.decode(e.id,n.id=l.newBuffer(l.base64.length(e.id)),0):e.id.length>=0&&(n.id=e.id)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.id="":(n.id=[],t.bytes!==Array&&(n.id=l.newBuffer(n.id)))),e.id!=null&&e.hasOwnProperty("id")&&(n.id=t.bytes===String?l.base64.encode(e.id,0,e.id.length):t.bytes===Array?Array.prototype.slice.call(e.id):e.id),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SignedId"},i}(),p.AudioFormat=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.sample_rate=0,i.prototype.channels=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.sample_rate!=null&&Object.hasOwnProperty.call(e,"sample_rate")&&t.uint32(8).uint32(e.sample_rate),e.channels!=null&&Object.hasOwnProperty.call(e,"channels")&&t.uint32(16).uint32(e.channels),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.AudioFormat;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.sample_rate=e.uint32();break}case 2:{d.channels=e.uint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.sample_rate!=null&&e.hasOwnProperty("sample_rate")&&!l.isInteger(e.sample_rate)?"sample_rate: integer expected":e.channels!=null&&e.hasOwnProperty("channels")&&!l.isInteger(e.channels)?"channels: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.AudioFormat)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.AudioFormat;return e.sample_rate!=null&&(n.sample_rate=e.sample_rate>>>0),e.channels!=null&&(n.channels=e.channels>>>0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.sample_rate=0,n.channels=0),e.sample_rate!=null&&e.hasOwnProperty("sample_rate")&&(n.sample_rate=e.sample_rate),e.channels!=null&&e.hasOwnProperty("channels")&&(n.channels=e.channels),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.AudioFormat"},i}(),p.AudioFrame=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.data=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&t.uint32(10).bytes(e.data),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.AudioFrame;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.data=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||l.isString(e.data))?"data: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.AudioFrame)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.AudioFrame;return e.data!=null&&(typeof e.data=="string"?l.base64.decode(e.data,n.data=l.newBuffer(l.base64.length(e.data)),0):e.data.length>=0&&(n.data=e.data)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.data="":(n.data=[],t.bytes!==Array&&(n.data=l.newBuffer(n.data)))),e.data!=null&&e.hasOwnProperty("data")&&(n.data=t.bytes===String?l.base64.encode(e.data,0,e.data.length):t.bytes===Array?Array.prototype.slice.call(e.data):e.data),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.AudioFrame"},i}(),p.MessageBox=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.msgtype="",i.prototype.title="",i.prototype.text="",i.prototype.link="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.msgtype!=null&&Object.hasOwnProperty.call(e,"msgtype")&&t.uint32(10).string(e.msgtype),e.title!=null&&Object.hasOwnProperty.call(e,"title")&&t.uint32(18).string(e.title),e.text!=null&&Object.hasOwnProperty.call(e,"text")&&t.uint32(26).string(e.text),e.link!=null&&Object.hasOwnProperty.call(e,"link")&&t.uint32(34).string(e.link),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.MessageBox;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.msgtype=e.string();break}case 2:{d.title=e.string();break}case 3:{d.text=e.string();break}case 4:{d.link=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.msgtype!=null&&e.hasOwnProperty("msgtype")&&!l.isString(e.msgtype)?"msgtype: string expected":e.title!=null&&e.hasOwnProperty("title")&&!l.isString(e.title)?"title: string expected":e.text!=null&&e.hasOwnProperty("text")&&!l.isString(e.text)?"text: string expected":e.link!=null&&e.hasOwnProperty("link")&&!l.isString(e.link)?"link: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.MessageBox)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.MessageBox;return e.msgtype!=null&&(n.msgtype=String(e.msgtype)),e.title!=null&&(n.title=String(e.title)),e.text!=null&&(n.text=String(e.text)),e.link!=null&&(n.link=String(e.link)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.msgtype="",n.title="",n.text="",n.link=""),e.msgtype!=null&&e.hasOwnProperty("msgtype")&&(n.msgtype=e.msgtype),e.title!=null&&e.hasOwnProperty("title")&&(n.title=e.title),e.text!=null&&e.hasOwnProperty("text")&&(n.text=e.text),e.link!=null&&e.hasOwnProperty("link")&&(n.link=e.link),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.MessageBox"},i}(),p.BackNotification=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.privacy_mode_state=null,i.prototype.block_input_state=null,i.prototype.details="",i.prototype.impl_key="";let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["privacy_mode_state","block_input_state"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.privacy_mode_state!=null&&Object.hasOwnProperty.call(t,"privacy_mode_state")&&n.uint32(8).int32(t.privacy_mode_state),t.block_input_state!=null&&Object.hasOwnProperty.call(t,"block_input_state")&&n.uint32(16).int32(t.block_input_state),t.details!=null&&Object.hasOwnProperty.call(t,"details")&&n.uint32(26).string(t.details),t.impl_key!=null&&Object.hasOwnProperty.call(t,"impl_key")&&n.uint32(34).string(t.impl_key),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.BackNotification;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.privacy_mode_state=t.int32();break}case 2:{c.block_input_state=t.int32();break}case 3:{c.details=t.string();break}case 4:{c.impl_key=t.string();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.privacy_mode_state!=null&&t.hasOwnProperty("privacy_mode_state"))switch(r.union=1,t.privacy_mode_state){default:return"privacy_mode_state: enum value expected";case 0:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:break}if(t.block_input_state!=null&&t.hasOwnProperty("block_input_state")){if(r.union===1)return"union: multiple values";switch(r.union=1,t.block_input_state){default:return"block_input_state: enum value expected";case 0:case 2:case 3:case 4:case 5:break}}return t.details!=null&&t.hasOwnProperty("details")&&!l.isString(t.details)?"details: string expected":t.impl_key!=null&&t.hasOwnProperty("impl_key")&&!l.isString(t.impl_key)?"impl_key: string expected":null},i.fromObject=function(t,n){if(t instanceof u.hbb.BackNotification)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.BackNotification;switch(t.privacy_mode_state){default:if(typeof t.privacy_mode_state=="number"){r.privacy_mode_state=t.privacy_mode_state;break}break;case"PrvStateUnknown":case 0:r.privacy_mode_state=0;break;case"PrvOnByOther":case 2:r.privacy_mode_state=2;break;case"PrvNotSupported":case 3:r.privacy_mode_state=3;break;case"PrvOnSucceeded":case 4:r.privacy_mode_state=4;break;case"PrvOnFailedDenied":case 5:r.privacy_mode_state=5;break;case"PrvOnFailedPlugin":case 6:r.privacy_mode_state=6;break;case"PrvOnFailed":case 7:r.privacy_mode_state=7;break;case"PrvOffSucceeded":case 8:r.privacy_mode_state=8;break;case"PrvOffByPeer":case 9:r.privacy_mode_state=9;break;case"PrvOffFailed":case 10:r.privacy_mode_state=10;break;case"PrvOffUnknown":case 11:r.privacy_mode_state=11;break}switch(t.block_input_state){default:if(typeof t.block_input_state=="number"){r.block_input_state=t.block_input_state;break}break;case"BlkStateUnknown":case 0:r.block_input_state=0;break;case"BlkOnSucceeded":case 2:r.block_input_state=2;break;case"BlkOnFailed":case 3:r.block_input_state=3;break;case"BlkOffSucceeded":case 4:r.block_input_state=4;break;case"BlkOffFailed":case 5:r.block_input_state=5;break}return t.details!=null&&(r.details=String(t.details)),t.impl_key!=null&&(r.impl_key=String(t.impl_key)),r},i.toObject=function(t,n){n||(n={});let r={};return n.defaults&&(r.details="",r.impl_key=""),t.privacy_mode_state!=null&&t.hasOwnProperty("privacy_mode_state")&&(r.privacy_mode_state=n.enums===String?u.hbb.BackNotification.PrivacyModeState[t.privacy_mode_state]===void 0?t.privacy_mode_state:u.hbb.BackNotification.PrivacyModeState[t.privacy_mode_state]:t.privacy_mode_state,n.oneofs&&(r.union="privacy_mode_state")),t.block_input_state!=null&&t.hasOwnProperty("block_input_state")&&(r.block_input_state=n.enums===String?u.hbb.BackNotification.BlockInputState[t.block_input_state]===void 0?t.block_input_state:u.hbb.BackNotification.BlockInputState[t.block_input_state]:t.block_input_state,n.oneofs&&(r.union="block_input_state")),t.details!=null&&t.hasOwnProperty("details")&&(r.details=t.details),t.impl_key!=null&&t.hasOwnProperty("impl_key")&&(r.impl_key=t.impl_key),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.BackNotification"},i.BlockInputState=function(){let e={},t=Object.create(e);return t[e[0]="BlkStateUnknown"]=0,t[e[2]="BlkOnSucceeded"]=2,t[e[3]="BlkOnFailed"]=3,t[e[4]="BlkOffSucceeded"]=4,t[e[5]="BlkOffFailed"]=5,t}(),i.PrivacyModeState=function(){let e={},t=Object.create(e);return t[e[0]="PrvStateUnknown"]=0,t[e[2]="PrvOnByOther"]=2,t[e[3]="PrvNotSupported"]=3,t[e[4]="PrvOnSucceeded"]=4,t[e[5]="PrvOnFailedDenied"]=5,t[e[6]="PrvOnFailedPlugin"]=6,t[e[7]="PrvOnFailed"]=7,t[e[8]="PrvOffSucceeded"]=8,t[e[9]="PrvOffByPeer"]=9,t[e[10]="PrvOffFailed"]=10,t[e[11]="PrvOffUnknown"]=11,t}(),i}(),p.ElevationRequestWithLogon=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.username="",i.prototype.password="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.username!=null&&Object.hasOwnProperty.call(e,"username")&&t.uint32(10).string(e.username),e.password!=null&&Object.hasOwnProperty.call(e,"password")&&t.uint32(18).string(e.password),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.ElevationRequestWithLogon;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.username=e.string();break}case 2:{d.password=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.username!=null&&e.hasOwnProperty("username")&&!l.isString(e.username)?"username: string expected":e.password!=null&&e.hasOwnProperty("password")&&!l.isString(e.password)?"password: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.ElevationRequestWithLogon)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.ElevationRequestWithLogon;return e.username!=null&&(n.username=String(e.username)),e.password!=null&&(n.password=String(e.password)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.username="",n.password=""),e.username!=null&&e.hasOwnProperty("username")&&(n.username=e.username),e.password!=null&&e.hasOwnProperty("password")&&(n.password=e.password),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.ElevationRequestWithLogon"},i}(),p.ElevationRequest=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.direct=null,i.prototype.logon=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["direct","logon"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.direct!=null&&Object.hasOwnProperty.call(t,"direct")&&n.uint32(8).bool(t.direct),t.logon!=null&&Object.hasOwnProperty.call(t,"logon")&&u.hbb.ElevationRequestWithLogon.encode(t.logon,n.uint32(18).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.ElevationRequest;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 1:{c.direct=t.bool();break}case 2:{c.logon=u.hbb.ElevationRequestWithLogon.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.direct!=null&&t.hasOwnProperty("direct")&&(r.union=1,typeof t.direct!="boolean"))return"direct: boolean expected";if(t.logon!=null&&t.hasOwnProperty("logon")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ElevationRequestWithLogon.verify(t.logon,n+1);if(f)return"logon."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.ElevationRequest)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.ElevationRequest;if(t.direct!=null&&(r.direct=!!t.direct),t.logon!=null){if(typeof t.logon!="object")throw TypeError(".hbb.ElevationRequest.logon: object expected");r.logon=u.hbb.ElevationRequestWithLogon.fromObject(t.logon,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.direct!=null&&t.hasOwnProperty("direct")&&(r.direct=t.direct,n.oneofs&&(r.union="direct")),t.logon!=null&&t.hasOwnProperty("logon")&&(r.logon=u.hbb.ElevationRequestWithLogon.toObject(t.logon,n),n.oneofs&&(r.union="logon")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.ElevationRequest"},i}(),p.SwitchSidesRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.uuid=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.uuid!=null&&Object.hasOwnProperty.call(e,"uuid")&&t.uint32(10).bytes(e.uuid),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SwitchSidesRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.uuid=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.uuid!=null&&e.hasOwnProperty("uuid")&&!(e.uuid&&typeof e.uuid.length=="number"||l.isString(e.uuid))?"uuid: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.SwitchSidesRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SwitchSidesRequest;return e.uuid!=null&&(typeof e.uuid=="string"?l.base64.decode(e.uuid,n.uuid=l.newBuffer(l.base64.length(e.uuid)),0):e.uuid.length>=0&&(n.uuid=e.uuid)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.uuid="":(n.uuid=[],t.bytes!==Array&&(n.uuid=l.newBuffer(n.uuid)))),e.uuid!=null&&e.hasOwnProperty("uuid")&&(n.uuid=t.bytes===String?l.base64.encode(e.uuid,0,e.uuid.length):t.bytes===Array?Array.prototype.slice.call(e.uuid):e.uuid),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SwitchSidesRequest"},i}(),p.SwitchSidesResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.uuid=l.newBuffer([]),i.prototype.lr=null,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.uuid!=null&&Object.hasOwnProperty.call(e,"uuid")&&t.uint32(10).bytes(e.uuid),e.lr!=null&&Object.hasOwnProperty.call(e,"lr")&&u.hbb.LoginRequest.encode(e.lr,t.uint32(18).fork()).ldelim(),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SwitchSidesResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.uuid=e.bytes();break}case 2:{d.lr=u.hbb.LoginRequest.decode(e,e.uint32(),void 0,r+1);break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.uuid!=null&&e.hasOwnProperty("uuid")&&!(e.uuid&&typeof e.uuid.length=="number"||l.isString(e.uuid)))return"uuid: buffer expected";if(e.lr!=null&&e.hasOwnProperty("lr")){let n=u.hbb.LoginRequest.verify(e.lr,t+1);if(n)return"lr."+n}return null},i.fromObject=function(e,t){if(e instanceof u.hbb.SwitchSidesResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.SwitchSidesResponse;if(e.uuid!=null&&(typeof e.uuid=="string"?l.base64.decode(e.uuid,n.uuid=l.newBuffer(l.base64.length(e.uuid)),0):e.uuid.length>=0&&(n.uuid=e.uuid)),e.lr!=null){if(typeof e.lr!="object")throw TypeError(".hbb.SwitchSidesResponse.lr: object expected");n.lr=u.hbb.LoginRequest.fromObject(e.lr,t+1)}return n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(t.bytes===String?n.uuid="":(n.uuid=[],t.bytes!==Array&&(n.uuid=l.newBuffer(n.uuid))),n.lr=null),e.uuid!=null&&e.hasOwnProperty("uuid")&&(n.uuid=t.bytes===String?l.base64.encode(e.uuid,0,e.uuid.length):t.bytes===Array?Array.prototype.slice.call(e.uuid):e.uuid),e.lr!=null&&e.hasOwnProperty("lr")&&(n.lr=u.hbb.LoginRequest.toObject(e.lr,t)),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SwitchSidesResponse"},i}(),p.SwitchBack=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.SwitchBack;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.SwitchBack)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");return new u.hbb.SwitchBack},i.toObject=function(){return{}},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.SwitchBack"},i}(),p.PluginRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.content=l.newBuffer([]),i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.content!=null&&Object.hasOwnProperty.call(e,"content")&&t.uint32(18).bytes(e.content),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PluginRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.content=e.bytes();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.content!=null&&e.hasOwnProperty("content")&&!(e.content&&typeof e.content.length=="number"||l.isString(e.content))?"content: buffer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.PluginRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PluginRequest;return e.id!=null&&(n.id=String(e.id)),e.content!=null&&(typeof e.content=="string"?l.base64.decode(e.content,n.content=l.newBuffer(l.base64.length(e.content)),0):e.content.length>=0&&(n.content=e.content)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",t.bytes===String?n.content="":(n.content=[],t.bytes!==Array&&(n.content=l.newBuffer(n.content)))),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.content!=null&&e.hasOwnProperty("content")&&(n.content=t.bytes===String?l.base64.encode(e.content,0,e.content.length):t.bytes===Array?Array.prototype.slice.call(e.content):e.content),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PluginRequest"},i}(),p.PluginFailure=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.id="",i.prototype.name="",i.prototype.msg="",i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.id!=null&&Object.hasOwnProperty.call(e,"id")&&t.uint32(10).string(e.id),e.name!=null&&Object.hasOwnProperty.call(e,"name")&&t.uint32(18).string(e.name),e.msg!=null&&Object.hasOwnProperty.call(e,"msg")&&t.uint32(26).string(e.msg),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.PluginFailure;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.id=e.string();break}case 2:{d.name=e.string();break}case 3:{d.msg=e.string();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.id!=null&&e.hasOwnProperty("id")&&!l.isString(e.id)?"id: string expected":e.name!=null&&e.hasOwnProperty("name")&&!l.isString(e.name)?"name: string expected":e.msg!=null&&e.hasOwnProperty("msg")&&!l.isString(e.msg)?"msg: string expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.PluginFailure)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.PluginFailure;return e.id!=null&&(n.id=String(e.id)),e.name!=null&&(n.name=String(e.name)),e.msg!=null&&(n.msg=String(e.msg)),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.id="",n.name="",n.msg=""),e.id!=null&&e.hasOwnProperty("id")&&(n.id=e.id),e.name!=null&&e.hasOwnProperty("name")&&(n.name=e.name),e.msg!=null&&e.hasOwnProperty("msg")&&(n.msg=e.msg),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.PluginFailure"},i}(),p.WindowsSessions=function(){function i(o){if(this.sessions=[],o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.sessions=l.emptyArray,i.prototype.current_sid=0,i.create=function(e){return new i(e)},i.encode=function(e,t){if(t||(t=S.create()),e.sessions!=null&&e.sessions.length)for(let n=0;n<e.sessions.length;++n)u.hbb.WindowsSession.encode(e.sessions[n],t.uint32(10).fork()).ldelim();return e.current_sid!=null&&Object.hasOwnProperty.call(e,"current_sid")&&t.uint32(16).uint32(e.current_sid),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.WindowsSessions;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.sessions&&d.sessions.length||(d.sessions=[]),d.sessions.push(u.hbb.WindowsSession.decode(e,e.uint32(),void 0,r+1));break}case 2:{d.current_sid=e.uint32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){if(typeof e!="object"||e===null)return"object expected";if(t===void 0&&(t=0),t>l.recursionLimit)return"maximum nesting depth exceeded";if(e.sessions!=null&&e.hasOwnProperty("sessions")){if(!Array.isArray(e.sessions))return"sessions: array expected";for(let n=0;n<e.sessions.length;++n){let r=u.hbb.WindowsSession.verify(e.sessions[n],t+1);if(r)return"sessions."+r}}return e.current_sid!=null&&e.hasOwnProperty("current_sid")&&!l.isInteger(e.current_sid)?"current_sid: integer expected":null},i.fromObject=function(e,t){if(e instanceof u.hbb.WindowsSessions)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.WindowsSessions;if(e.sessions){if(!Array.isArray(e.sessions))throw TypeError(".hbb.WindowsSessions.sessions: array expected");n.sessions=[];for(let r=0;r<e.sessions.length;++r){if(typeof e.sessions[r]!="object")throw TypeError(".hbb.WindowsSessions.sessions: object expected");n.sessions[r]=u.hbb.WindowsSession.fromObject(e.sessions[r],t+1)}}return e.current_sid!=null&&(n.current_sid=e.current_sid>>>0),n},i.toObject=function(e,t){t||(t={});let n={};if((t.arrays||t.defaults)&&(n.sessions=[]),t.defaults&&(n.current_sid=0),e.sessions&&e.sessions.length){n.sessions=[];for(let r=0;r<e.sessions.length;++r)n.sessions[r]=u.hbb.WindowsSession.toObject(e.sessions[r],t)}return e.current_sid!=null&&e.hasOwnProperty("current_sid")&&(n.current_sid=e.current_sid),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.WindowsSessions"},i}(),p.MessageQuery=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.switch_display=0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.switch_display!=null&&Object.hasOwnProperty.call(e,"switch_display")&&t.uint32(8).int32(e.switch_display),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.MessageQuery;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.switch_display=e.int32();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.switch_display!=null&&e.hasOwnProperty("switch_display")&&!l.isInteger(e.switch_display)?"switch_display: integer expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.MessageQuery)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.MessageQuery;return e.switch_display!=null&&(n.switch_display=e.switch_display|0),n},i.toObject=function(e,t){t||(t={});let n={};return t.defaults&&(n.switch_display=0),e.switch_display!=null&&e.hasOwnProperty("switch_display")&&(n.switch_display=e.switch_display),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.MessageQuery"},i}(),p.Misc=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.chat_message=null,i.prototype.switch_display=null,i.prototype.permission_info=null,i.prototype.option=null,i.prototype.audio_format=null,i.prototype.close_reason=null,i.prototype.refresh_video=null,i.prototype.video_received=null,i.prototype.back_notification=null,i.prototype.restart_remote_device=null,i.prototype.uac=null,i.prototype.foreground_window_elevated=null,i.prototype.stop_service=null,i.prototype.elevation_request=null,i.prototype.elevation_response=null,i.prototype.portable_service_running=null,i.prototype.switch_sides_request=null,i.prototype.switch_back=null,i.prototype.change_resolution=null,i.prototype.plugin_request=null,i.prototype.plugin_failure=null,i.prototype.full_speed_fps=null,i.prototype.auto_adjust_fps=null,i.prototype.client_record_status=null,i.prototype.capture_displays=null,i.prototype.refresh_video_display=null,i.prototype.toggle_virtual_display=null,i.prototype.toggle_privacy_mode=null,i.prototype.supported_encoding=null,i.prototype.selected_sid=null,i.prototype.change_display_resolution=null,i.prototype.message_query=null,i.prototype.follow_current_display=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["chat_message","switch_display","permission_info","option","audio_format","close_reason","refresh_video","video_received","back_notification","restart_remote_device","uac","foreground_window_elevated","stop_service","elevation_request","elevation_response","portable_service_running","switch_sides_request","switch_back","change_resolution","plugin_request","plugin_failure","full_speed_fps","auto_adjust_fps","client_record_status","capture_displays","refresh_video_display","toggle_virtual_display","toggle_privacy_mode","supported_encoding","selected_sid","change_display_resolution","message_query","follow_current_display"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.chat_message!=null&&Object.hasOwnProperty.call(t,"chat_message")&&u.hbb.ChatMessage.encode(t.chat_message,n.uint32(34).fork()).ldelim(),t.switch_display!=null&&Object.hasOwnProperty.call(t,"switch_display")&&u.hbb.SwitchDisplay.encode(t.switch_display,n.uint32(42).fork()).ldelim(),t.permission_info!=null&&Object.hasOwnProperty.call(t,"permission_info")&&u.hbb.PermissionInfo.encode(t.permission_info,n.uint32(50).fork()).ldelim(),t.option!=null&&Object.hasOwnProperty.call(t,"option")&&u.hbb.OptionMessage.encode(t.option,n.uint32(58).fork()).ldelim(),t.audio_format!=null&&Object.hasOwnProperty.call(t,"audio_format")&&u.hbb.AudioFormat.encode(t.audio_format,n.uint32(66).fork()).ldelim(),t.close_reason!=null&&Object.hasOwnProperty.call(t,"close_reason")&&n.uint32(74).string(t.close_reason),t.refresh_video!=null&&Object.hasOwnProperty.call(t,"refresh_video")&&n.uint32(80).bool(t.refresh_video),t.video_received!=null&&Object.hasOwnProperty.call(t,"video_received")&&n.uint32(96).bool(t.video_received),t.back_notification!=null&&Object.hasOwnProperty.call(t,"back_notification")&&u.hbb.BackNotification.encode(t.back_notification,n.uint32(106).fork()).ldelim(),t.restart_remote_device!=null&&Object.hasOwnProperty.call(t,"restart_remote_device")&&n.uint32(112).bool(t.restart_remote_device),t.uac!=null&&Object.hasOwnProperty.call(t,"uac")&&n.uint32(120).bool(t.uac),t.foreground_window_elevated!=null&&Object.hasOwnProperty.call(t,"foreground_window_elevated")&&n.uint32(128).bool(t.foreground_window_elevated),t.stop_service!=null&&Object.hasOwnProperty.call(t,"stop_service")&&n.uint32(136).bool(t.stop_service),t.elevation_request!=null&&Object.hasOwnProperty.call(t,"elevation_request")&&u.hbb.ElevationRequest.encode(t.elevation_request,n.uint32(146).fork()).ldelim(),t.elevation_response!=null&&Object.hasOwnProperty.call(t,"elevation_response")&&n.uint32(154).string(t.elevation_response),t.portable_service_running!=null&&Object.hasOwnProperty.call(t,"portable_service_running")&&n.uint32(160).bool(t.portable_service_running),t.switch_sides_request!=null&&Object.hasOwnProperty.call(t,"switch_sides_request")&&u.hbb.SwitchSidesRequest.encode(t.switch_sides_request,n.uint32(170).fork()).ldelim(),t.switch_back!=null&&Object.hasOwnProperty.call(t,"switch_back")&&u.hbb.SwitchBack.encode(t.switch_back,n.uint32(178).fork()).ldelim(),t.change_resolution!=null&&Object.hasOwnProperty.call(t,"change_resolution")&&u.hbb.Resolution.encode(t.change_resolution,n.uint32(194).fork()).ldelim(),t.plugin_request!=null&&Object.hasOwnProperty.call(t,"plugin_request")&&u.hbb.PluginRequest.encode(t.plugin_request,n.uint32(202).fork()).ldelim(),t.plugin_failure!=null&&Object.hasOwnProperty.call(t,"plugin_failure")&&u.hbb.PluginFailure.encode(t.plugin_failure,n.uint32(210).fork()).ldelim(),t.full_speed_fps!=null&&Object.hasOwnProperty.call(t,"full_speed_fps")&&n.uint32(216).uint32(t.full_speed_fps),t.auto_adjust_fps!=null&&Object.hasOwnProperty.call(t,"auto_adjust_fps")&&n.uint32(224).uint32(t.auto_adjust_fps),t.client_record_status!=null&&Object.hasOwnProperty.call(t,"client_record_status")&&n.uint32(232).bool(t.client_record_status),t.capture_displays!=null&&Object.hasOwnProperty.call(t,"capture_displays")&&u.hbb.CaptureDisplays.encode(t.capture_displays,n.uint32(242).fork()).ldelim(),t.refresh_video_display!=null&&Object.hasOwnProperty.call(t,"refresh_video_display")&&n.uint32(248).int32(t.refresh_video_display),t.toggle_virtual_display!=null&&Object.hasOwnProperty.call(t,"toggle_virtual_display")&&u.hbb.ToggleVirtualDisplay.encode(t.toggle_virtual_display,n.uint32(258).fork()).ldelim(),t.toggle_privacy_mode!=null&&Object.hasOwnProperty.call(t,"toggle_privacy_mode")&&u.hbb.TogglePrivacyMode.encode(t.toggle_privacy_mode,n.uint32(266).fork()).ldelim(),t.supported_encoding!=null&&Object.hasOwnProperty.call(t,"supported_encoding")&&u.hbb.SupportedEncoding.encode(t.supported_encoding,n.uint32(274).fork()).ldelim(),t.selected_sid!=null&&Object.hasOwnProperty.call(t,"selected_sid")&&n.uint32(280).uint32(t.selected_sid),t.change_display_resolution!=null&&Object.hasOwnProperty.call(t,"change_display_resolution")&&u.hbb.DisplayResolution.encode(t.change_display_resolution,n.uint32(290).fork()).ldelim(),t.message_query!=null&&Object.hasOwnProperty.call(t,"message_query")&&u.hbb.MessageQuery.encode(t.message_query,n.uint32(298).fork()).ldelim(),t.follow_current_display!=null&&Object.hasOwnProperty.call(t,"follow_current_display")&&n.uint32(304).int32(t.follow_current_display),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.Misc;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 4:{c.chat_message=u.hbb.ChatMessage.decode(t,t.uint32(),void 0,f+1);break}case 5:{c.switch_display=u.hbb.SwitchDisplay.decode(t,t.uint32(),void 0,f+1);break}case 6:{c.permission_info=u.hbb.PermissionInfo.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.option=u.hbb.OptionMessage.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.audio_format=u.hbb.AudioFormat.decode(t,t.uint32(),void 0,f+1);break}case 9:{c.close_reason=t.string();break}case 10:{c.refresh_video=t.bool();break}case 12:{c.video_received=t.bool();break}case 13:{c.back_notification=u.hbb.BackNotification.decode(t,t.uint32(),void 0,f+1);break}case 14:{c.restart_remote_device=t.bool();break}case 15:{c.uac=t.bool();break}case 16:{c.foreground_window_elevated=t.bool();break}case 17:{c.stop_service=t.bool();break}case 18:{c.elevation_request=u.hbb.ElevationRequest.decode(t,t.uint32(),void 0,f+1);break}case 19:{c.elevation_response=t.string();break}case 20:{c.portable_service_running=t.bool();break}case 21:{c.switch_sides_request=u.hbb.SwitchSidesRequest.decode(t,t.uint32(),void 0,f+1);break}case 22:{c.switch_back=u.hbb.SwitchBack.decode(t,t.uint32(),void 0,f+1);break}case 24:{c.change_resolution=u.hbb.Resolution.decode(t,t.uint32(),void 0,f+1);break}case 25:{c.plugin_request=u.hbb.PluginRequest.decode(t,t.uint32(),void 0,f+1);break}case 26:{c.plugin_failure=u.hbb.PluginFailure.decode(t,t.uint32(),void 0,f+1);break}case 27:{c.full_speed_fps=t.uint32();break}case 28:{c.auto_adjust_fps=t.uint32();break}case 29:{c.client_record_status=t.bool();break}case 30:{c.capture_displays=u.hbb.CaptureDisplays.decode(t,t.uint32(),void 0,f+1);break}case 31:{c.refresh_video_display=t.int32();break}case 32:{c.toggle_virtual_display=u.hbb.ToggleVirtualDisplay.decode(t,t.uint32(),void 0,f+1);break}case 33:{c.toggle_privacy_mode=u.hbb.TogglePrivacyMode.decode(t,t.uint32(),void 0,f+1);break}case 34:{c.supported_encoding=u.hbb.SupportedEncoding.decode(t,t.uint32(),void 0,f+1);break}case 35:{c.selected_sid=t.uint32();break}case 36:{c.change_display_resolution=u.hbb.DisplayResolution.decode(t,t.uint32(),void 0,f+1);break}case 37:{c.message_query=u.hbb.MessageQuery.decode(t,t.uint32(),void 0,f+1);break}case 38:{c.follow_current_display=t.int32();break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.chat_message!=null&&t.hasOwnProperty("chat_message")){r.union=1;{let f=u.hbb.ChatMessage.verify(t.chat_message,n+1);if(f)return"chat_message."+f}}if(t.switch_display!=null&&t.hasOwnProperty("switch_display")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SwitchDisplay.verify(t.switch_display,n+1);if(f)return"switch_display."+f}}if(t.permission_info!=null&&t.hasOwnProperty("permission_info")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PermissionInfo.verify(t.permission_info,n+1);if(f)return"permission_info."+f}}if(t.option!=null&&t.hasOwnProperty("option")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.OptionMessage.verify(t.option,n+1);if(f)return"option."+f}}if(t.audio_format!=null&&t.hasOwnProperty("audio_format")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.AudioFormat.verify(t.audio_format,n+1);if(f)return"audio_format."+f}}if(t.close_reason!=null&&t.hasOwnProperty("close_reason")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isString(t.close_reason))return"close_reason: string expected"}if(t.refresh_video!=null&&t.hasOwnProperty("refresh_video")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.refresh_video!="boolean")return"refresh_video: boolean expected"}if(t.video_received!=null&&t.hasOwnProperty("video_received")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.video_received!="boolean")return"video_received: boolean expected"}if(t.back_notification!=null&&t.hasOwnProperty("back_notification")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.BackNotification.verify(t.back_notification,n+1);if(f)return"back_notification."+f}}if(t.restart_remote_device!=null&&t.hasOwnProperty("restart_remote_device")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.restart_remote_device!="boolean")return"restart_remote_device: boolean expected"}if(t.uac!=null&&t.hasOwnProperty("uac")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.uac!="boolean")return"uac: boolean expected"}if(t.foreground_window_elevated!=null&&t.hasOwnProperty("foreground_window_elevated")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.foreground_window_elevated!="boolean")return"foreground_window_elevated: boolean expected"}if(t.stop_service!=null&&t.hasOwnProperty("stop_service")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.stop_service!="boolean")return"stop_service: boolean expected"}if(t.elevation_request!=null&&t.hasOwnProperty("elevation_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ElevationRequest.verify(t.elevation_request,n+1);if(f)return"elevation_request."+f}}if(t.elevation_response!=null&&t.hasOwnProperty("elevation_response")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isString(t.elevation_response))return"elevation_response: string expected"}if(t.portable_service_running!=null&&t.hasOwnProperty("portable_service_running")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.portable_service_running!="boolean")return"portable_service_running: boolean expected"}if(t.switch_sides_request!=null&&t.hasOwnProperty("switch_sides_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SwitchSidesRequest.verify(t.switch_sides_request,n+1);if(f)return"switch_sides_request."+f}}if(t.switch_back!=null&&t.hasOwnProperty("switch_back")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SwitchBack.verify(t.switch_back,n+1);if(f)return"switch_back."+f}}if(t.change_resolution!=null&&t.hasOwnProperty("change_resolution")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Resolution.verify(t.change_resolution,n+1);if(f)return"change_resolution."+f}}if(t.plugin_request!=null&&t.hasOwnProperty("plugin_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PluginRequest.verify(t.plugin_request,n+1);if(f)return"plugin_request."+f}}if(t.plugin_failure!=null&&t.hasOwnProperty("plugin_failure")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PluginFailure.verify(t.plugin_failure,n+1);if(f)return"plugin_failure."+f}}if(t.full_speed_fps!=null&&t.hasOwnProperty("full_speed_fps")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.full_speed_fps))return"full_speed_fps: integer expected"}if(t.auto_adjust_fps!=null&&t.hasOwnProperty("auto_adjust_fps")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.auto_adjust_fps))return"auto_adjust_fps: integer expected"}if(t.client_record_status!=null&&t.hasOwnProperty("client_record_status")){if(r.union===1)return"union: multiple values";if(r.union=1,typeof t.client_record_status!="boolean")return"client_record_status: boolean expected"}if(t.capture_displays!=null&&t.hasOwnProperty("capture_displays")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CaptureDisplays.verify(t.capture_displays,n+1);if(f)return"capture_displays."+f}}if(t.refresh_video_display!=null&&t.hasOwnProperty("refresh_video_display")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.refresh_video_display))return"refresh_video_display: integer expected"}if(t.toggle_virtual_display!=null&&t.hasOwnProperty("toggle_virtual_display")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.ToggleVirtualDisplay.verify(t.toggle_virtual_display,n+1);if(f)return"toggle_virtual_display."+f}}if(t.toggle_privacy_mode!=null&&t.hasOwnProperty("toggle_privacy_mode")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TogglePrivacyMode.verify(t.toggle_privacy_mode,n+1);if(f)return"toggle_privacy_mode."+f}}if(t.supported_encoding!=null&&t.hasOwnProperty("supported_encoding")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SupportedEncoding.verify(t.supported_encoding,n+1);if(f)return"supported_encoding."+f}}if(t.selected_sid!=null&&t.hasOwnProperty("selected_sid")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.selected_sid))return"selected_sid: integer expected"}if(t.change_display_resolution!=null&&t.hasOwnProperty("change_display_resolution")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.DisplayResolution.verify(t.change_display_resolution,n+1);if(f)return"change_display_resolution."+f}}if(t.message_query!=null&&t.hasOwnProperty("message_query")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.MessageQuery.verify(t.message_query,n+1);if(f)return"message_query."+f}}if(t.follow_current_display!=null&&t.hasOwnProperty("follow_current_display")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.follow_current_display))return"follow_current_display: integer expected"}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.Misc)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.Misc;if(t.chat_message!=null){if(typeof t.chat_message!="object")throw TypeError(".hbb.Misc.chat_message: object expected");r.chat_message=u.hbb.ChatMessage.fromObject(t.chat_message,n+1)}if(t.switch_display!=null){if(typeof t.switch_display!="object")throw TypeError(".hbb.Misc.switch_display: object expected");r.switch_display=u.hbb.SwitchDisplay.fromObject(t.switch_display,n+1)}if(t.permission_info!=null){if(typeof t.permission_info!="object")throw TypeError(".hbb.Misc.permission_info: object expected");r.permission_info=u.hbb.PermissionInfo.fromObject(t.permission_info,n+1)}if(t.option!=null){if(typeof t.option!="object")throw TypeError(".hbb.Misc.option: object expected");r.option=u.hbb.OptionMessage.fromObject(t.option,n+1)}if(t.audio_format!=null){if(typeof t.audio_format!="object")throw TypeError(".hbb.Misc.audio_format: object expected");r.audio_format=u.hbb.AudioFormat.fromObject(t.audio_format,n+1)}if(t.close_reason!=null&&(r.close_reason=String(t.close_reason)),t.refresh_video!=null&&(r.refresh_video=!!t.refresh_video),t.video_received!=null&&(r.video_received=!!t.video_received),t.back_notification!=null){if(typeof t.back_notification!="object")throw TypeError(".hbb.Misc.back_notification: object expected");r.back_notification=u.hbb.BackNotification.fromObject(t.back_notification,n+1)}if(t.restart_remote_device!=null&&(r.restart_remote_device=!!t.restart_remote_device),t.uac!=null&&(r.uac=!!t.uac),t.foreground_window_elevated!=null&&(r.foreground_window_elevated=!!t.foreground_window_elevated),t.stop_service!=null&&(r.stop_service=!!t.stop_service),t.elevation_request!=null){if(typeof t.elevation_request!="object")throw TypeError(".hbb.Misc.elevation_request: object expected");r.elevation_request=u.hbb.ElevationRequest.fromObject(t.elevation_request,n+1)}if(t.elevation_response!=null&&(r.elevation_response=String(t.elevation_response)),t.portable_service_running!=null&&(r.portable_service_running=!!t.portable_service_running),t.switch_sides_request!=null){if(typeof t.switch_sides_request!="object")throw TypeError(".hbb.Misc.switch_sides_request: object expected");r.switch_sides_request=u.hbb.SwitchSidesRequest.fromObject(t.switch_sides_request,n+1)}if(t.switch_back!=null){if(typeof t.switch_back!="object")throw TypeError(".hbb.Misc.switch_back: object expected");r.switch_back=u.hbb.SwitchBack.fromObject(t.switch_back,n+1)}if(t.change_resolution!=null){if(typeof t.change_resolution!="object")throw TypeError(".hbb.Misc.change_resolution: object expected");r.change_resolution=u.hbb.Resolution.fromObject(t.change_resolution,n+1)}if(t.plugin_request!=null){if(typeof t.plugin_request!="object")throw TypeError(".hbb.Misc.plugin_request: object expected");r.plugin_request=u.hbb.PluginRequest.fromObject(t.plugin_request,n+1)}if(t.plugin_failure!=null){if(typeof t.plugin_failure!="object")throw TypeError(".hbb.Misc.plugin_failure: object expected");r.plugin_failure=u.hbb.PluginFailure.fromObject(t.plugin_failure,n+1)}if(t.full_speed_fps!=null&&(r.full_speed_fps=t.full_speed_fps>>>0),t.auto_adjust_fps!=null&&(r.auto_adjust_fps=t.auto_adjust_fps>>>0),t.client_record_status!=null&&(r.client_record_status=!!t.client_record_status),t.capture_displays!=null){if(typeof t.capture_displays!="object")throw TypeError(".hbb.Misc.capture_displays: object expected");r.capture_displays=u.hbb.CaptureDisplays.fromObject(t.capture_displays,n+1)}if(t.refresh_video_display!=null&&(r.refresh_video_display=t.refresh_video_display|0),t.toggle_virtual_display!=null){if(typeof t.toggle_virtual_display!="object")throw TypeError(".hbb.Misc.toggle_virtual_display: object expected");r.toggle_virtual_display=u.hbb.ToggleVirtualDisplay.fromObject(t.toggle_virtual_display,n+1)}if(t.toggle_privacy_mode!=null){if(typeof t.toggle_privacy_mode!="object")throw TypeError(".hbb.Misc.toggle_privacy_mode: object expected");r.toggle_privacy_mode=u.hbb.TogglePrivacyMode.fromObject(t.toggle_privacy_mode,n+1)}if(t.supported_encoding!=null){if(typeof t.supported_encoding!="object")throw TypeError(".hbb.Misc.supported_encoding: object expected");r.supported_encoding=u.hbb.SupportedEncoding.fromObject(t.supported_encoding,n+1)}if(t.selected_sid!=null&&(r.selected_sid=t.selected_sid>>>0),t.change_display_resolution!=null){if(typeof t.change_display_resolution!="object")throw TypeError(".hbb.Misc.change_display_resolution: object expected");r.change_display_resolution=u.hbb.DisplayResolution.fromObject(t.change_display_resolution,n+1)}if(t.message_query!=null){if(typeof t.message_query!="object")throw TypeError(".hbb.Misc.message_query: object expected");r.message_query=u.hbb.MessageQuery.fromObject(t.message_query,n+1)}return t.follow_current_display!=null&&(r.follow_current_display=t.follow_current_display|0),r},i.toObject=function(t,n){n||(n={});let r={};return t.chat_message!=null&&t.hasOwnProperty("chat_message")&&(r.chat_message=u.hbb.ChatMessage.toObject(t.chat_message,n),n.oneofs&&(r.union="chat_message")),t.switch_display!=null&&t.hasOwnProperty("switch_display")&&(r.switch_display=u.hbb.SwitchDisplay.toObject(t.switch_display,n),n.oneofs&&(r.union="switch_display")),t.permission_info!=null&&t.hasOwnProperty("permission_info")&&(r.permission_info=u.hbb.PermissionInfo.toObject(t.permission_info,n),n.oneofs&&(r.union="permission_info")),t.option!=null&&t.hasOwnProperty("option")&&(r.option=u.hbb.OptionMessage.toObject(t.option,n),n.oneofs&&(r.union="option")),t.audio_format!=null&&t.hasOwnProperty("audio_format")&&(r.audio_format=u.hbb.AudioFormat.toObject(t.audio_format,n),n.oneofs&&(r.union="audio_format")),t.close_reason!=null&&t.hasOwnProperty("close_reason")&&(r.close_reason=t.close_reason,n.oneofs&&(r.union="close_reason")),t.refresh_video!=null&&t.hasOwnProperty("refresh_video")&&(r.refresh_video=t.refresh_video,n.oneofs&&(r.union="refresh_video")),t.video_received!=null&&t.hasOwnProperty("video_received")&&(r.video_received=t.video_received,n.oneofs&&(r.union="video_received")),t.back_notification!=null&&t.hasOwnProperty("back_notification")&&(r.back_notification=u.hbb.BackNotification.toObject(t.back_notification,n),n.oneofs&&(r.union="back_notification")),t.restart_remote_device!=null&&t.hasOwnProperty("restart_remote_device")&&(r.restart_remote_device=t.restart_remote_device,n.oneofs&&(r.union="restart_remote_device")),t.uac!=null&&t.hasOwnProperty("uac")&&(r.uac=t.uac,n.oneofs&&(r.union="uac")),t.foreground_window_elevated!=null&&t.hasOwnProperty("foreground_window_elevated")&&(r.foreground_window_elevated=t.foreground_window_elevated,n.oneofs&&(r.union="foreground_window_elevated")),t.stop_service!=null&&t.hasOwnProperty("stop_service")&&(r.stop_service=t.stop_service,n.oneofs&&(r.union="stop_service")),t.elevation_request!=null&&t.hasOwnProperty("elevation_request")&&(r.elevation_request=u.hbb.ElevationRequest.toObject(t.elevation_request,n),n.oneofs&&(r.union="elevation_request")),t.elevation_response!=null&&t.hasOwnProperty("elevation_response")&&(r.elevation_response=t.elevation_response,n.oneofs&&(r.union="elevation_response")),t.portable_service_running!=null&&t.hasOwnProperty("portable_service_running")&&(r.portable_service_running=t.portable_service_running,n.oneofs&&(r.union="portable_service_running")),t.switch_sides_request!=null&&t.hasOwnProperty("switch_sides_request")&&(r.switch_sides_request=u.hbb.SwitchSidesRequest.toObject(t.switch_sides_request,n),n.oneofs&&(r.union="switch_sides_request")),t.switch_back!=null&&t.hasOwnProperty("switch_back")&&(r.switch_back=u.hbb.SwitchBack.toObject(t.switch_back,n),n.oneofs&&(r.union="switch_back")),t.change_resolution!=null&&t.hasOwnProperty("change_resolution")&&(r.change_resolution=u.hbb.Resolution.toObject(t.change_resolution,n),n.oneofs&&(r.union="change_resolution")),t.plugin_request!=null&&t.hasOwnProperty("plugin_request")&&(r.plugin_request=u.hbb.PluginRequest.toObject(t.plugin_request,n),n.oneofs&&(r.union="plugin_request")),t.plugin_failure!=null&&t.hasOwnProperty("plugin_failure")&&(r.plugin_failure=u.hbb.PluginFailure.toObject(t.plugin_failure,n),n.oneofs&&(r.union="plugin_failure")),t.full_speed_fps!=null&&t.hasOwnProperty("full_speed_fps")&&(r.full_speed_fps=t.full_speed_fps,n.oneofs&&(r.union="full_speed_fps")),t.auto_adjust_fps!=null&&t.hasOwnProperty("auto_adjust_fps")&&(r.auto_adjust_fps=t.auto_adjust_fps,n.oneofs&&(r.union="auto_adjust_fps")),t.client_record_status!=null&&t.hasOwnProperty("client_record_status")&&(r.client_record_status=t.client_record_status,n.oneofs&&(r.union="client_record_status")),t.capture_displays!=null&&t.hasOwnProperty("capture_displays")&&(r.capture_displays=u.hbb.CaptureDisplays.toObject(t.capture_displays,n),n.oneofs&&(r.union="capture_displays")),t.refresh_video_display!=null&&t.hasOwnProperty("refresh_video_display")&&(r.refresh_video_display=t.refresh_video_display,n.oneofs&&(r.union="refresh_video_display")),t.toggle_virtual_display!=null&&t.hasOwnProperty("toggle_virtual_display")&&(r.toggle_virtual_display=u.hbb.ToggleVirtualDisplay.toObject(t.toggle_virtual_display,n),n.oneofs&&(r.union="toggle_virtual_display")),t.toggle_privacy_mode!=null&&t.hasOwnProperty("toggle_privacy_mode")&&(r.toggle_privacy_mode=u.hbb.TogglePrivacyMode.toObject(t.toggle_privacy_mode,n),n.oneofs&&(r.union="toggle_privacy_mode")),t.supported_encoding!=null&&t.hasOwnProperty("supported_encoding")&&(r.supported_encoding=u.hbb.SupportedEncoding.toObject(t.supported_encoding,n),n.oneofs&&(r.union="supported_encoding")),t.selected_sid!=null&&t.hasOwnProperty("selected_sid")&&(r.selected_sid=t.selected_sid,n.oneofs&&(r.union="selected_sid")),t.change_display_resolution!=null&&t.hasOwnProperty("change_display_resolution")&&(r.change_display_resolution=u.hbb.DisplayResolution.toObject(t.change_display_resolution,n),n.oneofs&&(r.union="change_display_resolution")),t.message_query!=null&&t.hasOwnProperty("message_query")&&(r.message_query=u.hbb.MessageQuery.toObject(t.message_query,n),n.oneofs&&(r.union="message_query")),t.follow_current_display!=null&&t.hasOwnProperty("follow_current_display")&&(r.follow_current_display=t.follow_current_display,n.oneofs&&(r.union="follow_current_display")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.Misc"},i}(),p.VoiceCallRequest=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.req_timestamp=l.Long?l.Long.fromBits(0,0,!1):0,i.prototype.is_connect=!1,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.req_timestamp!=null&&Object.hasOwnProperty.call(e,"req_timestamp")&&t.uint32(8).int64(e.req_timestamp),e.is_connect!=null&&Object.hasOwnProperty.call(e,"is_connect")&&t.uint32(16).bool(e.is_connect),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.VoiceCallRequest;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.req_timestamp=e.int64();break}case 2:{d.is_connect=e.bool();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.req_timestamp!=null&&e.hasOwnProperty("req_timestamp")&&!l.isInteger(e.req_timestamp)&&!(e.req_timestamp&&l.isInteger(e.req_timestamp.low)&&l.isInteger(e.req_timestamp.high))?"req_timestamp: integer|Long expected":e.is_connect!=null&&e.hasOwnProperty("is_connect")&&typeof e.is_connect!="boolean"?"is_connect: boolean expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.VoiceCallRequest)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.VoiceCallRequest;return e.req_timestamp!=null&&(l.Long?(n.req_timestamp=l.Long.fromValue(e.req_timestamp)).unsigned=!1:typeof e.req_timestamp=="string"?n.req_timestamp=parseInt(e.req_timestamp,10):typeof e.req_timestamp=="number"?n.req_timestamp=e.req_timestamp:typeof e.req_timestamp=="object"&&(n.req_timestamp=new l.LongBits(e.req_timestamp.low>>>0,e.req_timestamp.high>>>0).toNumber())),e.is_connect!=null&&(n.is_connect=!!e.is_connect),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(l.Long){let r=new l.Long(0,0,!1);n.req_timestamp=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.req_timestamp=t.longs===String?"0":0;n.is_connect=!1}return e.req_timestamp!=null&&e.hasOwnProperty("req_timestamp")&&(typeof e.req_timestamp=="number"?n.req_timestamp=t.longs===String?String(e.req_timestamp):e.req_timestamp:n.req_timestamp=t.longs===String?l.Long.prototype.toString.call(e.req_timestamp):t.longs===Number?new l.LongBits(e.req_timestamp.low>>>0,e.req_timestamp.high>>>0).toNumber():e.req_timestamp),e.is_connect!=null&&e.hasOwnProperty("is_connect")&&(n.is_connect=e.is_connect),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.VoiceCallRequest"},i}(),p.VoiceCallResponse=function(){function i(o){if(o)for(let e=Object.keys(o),t=0;t<e.length;++t)o[e[t]]!=null&&e[t]!=="__proto__"&&(this[e[t]]=o[e[t]])}return i.prototype.accepted=!1,i.prototype.req_timestamp=l.Long?l.Long.fromBits(0,0,!1):0,i.prototype.ack_timestamp=l.Long?l.Long.fromBits(0,0,!1):0,i.create=function(e){return new i(e)},i.encode=function(e,t){return t||(t=S.create()),e.accepted!=null&&Object.hasOwnProperty.call(e,"accepted")&&t.uint32(8).bool(e.accepted),e.req_timestamp!=null&&Object.hasOwnProperty.call(e,"req_timestamp")&&t.uint32(16).int64(e.req_timestamp),e.ack_timestamp!=null&&Object.hasOwnProperty.call(e,"ack_timestamp")&&t.uint32(24).int64(e.ack_timestamp),t},i.encodeDelimited=function(e,t){return this.encode(e,t).ldelim()},i.decode=function(e,t,n,r){if(e instanceof s||(e=s.create(e)),r===void 0&&(r=0),r>s.recursionLimit)throw Error("maximum nesting depth exceeded");let f=t===void 0?e.len:e.pos+t,d=new u.hbb.VoiceCallResponse;for(;e.pos<f;){let c=e.uint32();if(c===n)break;switch(c>>>3){case 1:{d.accepted=e.bool();break}case 2:{d.req_timestamp=e.int64();break}case 3:{d.ack_timestamp=e.int64();break}default:e.skipType(c&7,r);break}}return d},i.decodeDelimited=function(e){return e instanceof s||(e=new s(e)),this.decode(e,e.uint32())},i.verify=function(e,t){return typeof e!="object"||e===null?"object expected":(t===void 0&&(t=0),t>l.recursionLimit?"maximum nesting depth exceeded":e.accepted!=null&&e.hasOwnProperty("accepted")&&typeof e.accepted!="boolean"?"accepted: boolean expected":e.req_timestamp!=null&&e.hasOwnProperty("req_timestamp")&&!l.isInteger(e.req_timestamp)&&!(e.req_timestamp&&l.isInteger(e.req_timestamp.low)&&l.isInteger(e.req_timestamp.high))?"req_timestamp: integer|Long expected":e.ack_timestamp!=null&&e.hasOwnProperty("ack_timestamp")&&!l.isInteger(e.ack_timestamp)&&!(e.ack_timestamp&&l.isInteger(e.ack_timestamp.low)&&l.isInteger(e.ack_timestamp.high))?"ack_timestamp: integer|Long expected":null)},i.fromObject=function(e,t){if(e instanceof u.hbb.VoiceCallResponse)return e;if(t===void 0&&(t=0),t>l.recursionLimit)throw Error("maximum nesting depth exceeded");let n=new u.hbb.VoiceCallResponse;return e.accepted!=null&&(n.accepted=!!e.accepted),e.req_timestamp!=null&&(l.Long?(n.req_timestamp=l.Long.fromValue(e.req_timestamp)).unsigned=!1:typeof e.req_timestamp=="string"?n.req_timestamp=parseInt(e.req_timestamp,10):typeof e.req_timestamp=="number"?n.req_timestamp=e.req_timestamp:typeof e.req_timestamp=="object"&&(n.req_timestamp=new l.LongBits(e.req_timestamp.low>>>0,e.req_timestamp.high>>>0).toNumber())),e.ack_timestamp!=null&&(l.Long?(n.ack_timestamp=l.Long.fromValue(e.ack_timestamp)).unsigned=!1:typeof e.ack_timestamp=="string"?n.ack_timestamp=parseInt(e.ack_timestamp,10):typeof e.ack_timestamp=="number"?n.ack_timestamp=e.ack_timestamp:typeof e.ack_timestamp=="object"&&(n.ack_timestamp=new l.LongBits(e.ack_timestamp.low>>>0,e.ack_timestamp.high>>>0).toNumber())),n},i.toObject=function(e,t){t||(t={});let n={};if(t.defaults){if(n.accepted=!1,l.Long){let r=new l.Long(0,0,!1);n.req_timestamp=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.req_timestamp=t.longs===String?"0":0;if(l.Long){let r=new l.Long(0,0,!1);n.ack_timestamp=t.longs===String?r.toString():t.longs===Number?r.toNumber():r}else n.ack_timestamp=t.longs===String?"0":0}return e.accepted!=null&&e.hasOwnProperty("accepted")&&(n.accepted=e.accepted),e.req_timestamp!=null&&e.hasOwnProperty("req_timestamp")&&(typeof e.req_timestamp=="number"?n.req_timestamp=t.longs===String?String(e.req_timestamp):e.req_timestamp:n.req_timestamp=t.longs===String?l.Long.prototype.toString.call(e.req_timestamp):t.longs===Number?new l.LongBits(e.req_timestamp.low>>>0,e.req_timestamp.high>>>0).toNumber():e.req_timestamp),e.ack_timestamp!=null&&e.hasOwnProperty("ack_timestamp")&&(typeof e.ack_timestamp=="number"?n.ack_timestamp=t.longs===String?String(e.ack_timestamp):e.ack_timestamp:n.ack_timestamp=t.longs===String?l.Long.prototype.toString.call(e.ack_timestamp):t.longs===Number?new l.LongBits(e.ack_timestamp.low>>>0,e.ack_timestamp.high>>>0).toNumber():e.ack_timestamp),n},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/hbb.VoiceCallResponse"},i}(),p.Message=function(){function i(e){if(e)for(let t=Object.keys(e),n=0;n<t.length;++n)e[t[n]]!=null&&t[n]!=="__proto__"&&(this[t[n]]=e[t[n]])}i.prototype.signed_id=null,i.prototype.public_key=null,i.prototype.test_delay=null,i.prototype.video_frame=null,i.prototype.login_request=null,i.prototype.login_response=null,i.prototype.hash=null,i.prototype.mouse_event=null,i.prototype.audio_frame=null,i.prototype.cursor_data=null,i.prototype.cursor_position=null,i.prototype.cursor_id=null,i.prototype.key_event=null,i.prototype.clipboard=null,i.prototype.file_action=null,i.prototype.file_response=null,i.prototype.misc=null,i.prototype.cliprdr=null,i.prototype.message_box=null,i.prototype.switch_sides_response=null,i.prototype.voice_call_request=null,i.prototype.voice_call_response=null,i.prototype.peer_info=null,i.prototype.pointer_device_event=null,i.prototype.auth_2fa=null,i.prototype.multi_clipboards=null;let o;return Object.defineProperty(i.prototype,"union",{get:l.oneOfGetter(o=["signed_id","public_key","test_delay","video_frame","login_request","login_response","hash","mouse_event","audio_frame","cursor_data","cursor_position","cursor_id","key_event","clipboard","file_action","file_response","misc","cliprdr","message_box","switch_sides_response","voice_call_request","voice_call_response","peer_info","pointer_device_event","auth_2fa","multi_clipboards"]),set:l.oneOfSetter(o)}),i.create=function(t){return new i(t)},i.encode=function(t,n){return n||(n=S.create()),t.signed_id!=null&&Object.hasOwnProperty.call(t,"signed_id")&&u.hbb.SignedId.encode(t.signed_id,n.uint32(26).fork()).ldelim(),t.public_key!=null&&Object.hasOwnProperty.call(t,"public_key")&&u.hbb.PublicKey.encode(t.public_key,n.uint32(34).fork()).ldelim(),t.test_delay!=null&&Object.hasOwnProperty.call(t,"test_delay")&&u.hbb.TestDelay.encode(t.test_delay,n.uint32(42).fork()).ldelim(),t.video_frame!=null&&Object.hasOwnProperty.call(t,"video_frame")&&u.hbb.VideoFrame.encode(t.video_frame,n.uint32(50).fork()).ldelim(),t.login_request!=null&&Object.hasOwnProperty.call(t,"login_request")&&u.hbb.LoginRequest.encode(t.login_request,n.uint32(58).fork()).ldelim(),t.login_response!=null&&Object.hasOwnProperty.call(t,"login_response")&&u.hbb.LoginResponse.encode(t.login_response,n.uint32(66).fork()).ldelim(),t.hash!=null&&Object.hasOwnProperty.call(t,"hash")&&u.hbb.Hash.encode(t.hash,n.uint32(74).fork()).ldelim(),t.mouse_event!=null&&Object.hasOwnProperty.call(t,"mouse_event")&&u.hbb.MouseEvent.encode(t.mouse_event,n.uint32(82).fork()).ldelim(),t.audio_frame!=null&&Object.hasOwnProperty.call(t,"audio_frame")&&u.hbb.AudioFrame.encode(t.audio_frame,n.uint32(90).fork()).ldelim(),t.cursor_data!=null&&Object.hasOwnProperty.call(t,"cursor_data")&&u.hbb.CursorData.encode(t.cursor_data,n.uint32(98).fork()).ldelim(),t.cursor_position!=null&&Object.hasOwnProperty.call(t,"cursor_position")&&u.hbb.CursorPosition.encode(t.cursor_position,n.uint32(106).fork()).ldelim(),t.cursor_id!=null&&Object.hasOwnProperty.call(t,"cursor_id")&&n.uint32(112).uint64(t.cursor_id),t.key_event!=null&&Object.hasOwnProperty.call(t,"key_event")&&u.hbb.KeyEvent.encode(t.key_event,n.uint32(122).fork()).ldelim(),t.clipboard!=null&&Object.hasOwnProperty.call(t,"clipboard")&&u.hbb.Clipboard.encode(t.clipboard,n.uint32(130).fork()).ldelim(),t.file_action!=null&&Object.hasOwnProperty.call(t,"file_action")&&u.hbb.FileAction.encode(t.file_action,n.uint32(138).fork()).ldelim(),t.file_response!=null&&Object.hasOwnProperty.call(t,"file_response")&&u.hbb.FileResponse.encode(t.file_response,n.uint32(146).fork()).ldelim(),t.misc!=null&&Object.hasOwnProperty.call(t,"misc")&&u.hbb.Misc.encode(t.misc,n.uint32(154).fork()).ldelim(),t.cliprdr!=null&&Object.hasOwnProperty.call(t,"cliprdr")&&u.hbb.Cliprdr.encode(t.cliprdr,n.uint32(162).fork()).ldelim(),t.message_box!=null&&Object.hasOwnProperty.call(t,"message_box")&&u.hbb.MessageBox.encode(t.message_box,n.uint32(170).fork()).ldelim(),t.switch_sides_response!=null&&Object.hasOwnProperty.call(t,"switch_sides_response")&&u.hbb.SwitchSidesResponse.encode(t.switch_sides_response,n.uint32(178).fork()).ldelim(),t.voice_call_request!=null&&Object.hasOwnProperty.call(t,"voice_call_request")&&u.hbb.VoiceCallRequest.encode(t.voice_call_request,n.uint32(186).fork()).ldelim(),t.voice_call_response!=null&&Object.hasOwnProperty.call(t,"voice_call_response")&&u.hbb.VoiceCallResponse.encode(t.voice_call_response,n.uint32(194).fork()).ldelim(),t.peer_info!=null&&Object.hasOwnProperty.call(t,"peer_info")&&u.hbb.PeerInfo.encode(t.peer_info,n.uint32(202).fork()).ldelim(),t.pointer_device_event!=null&&Object.hasOwnProperty.call(t,"pointer_device_event")&&u.hbb.PointerDeviceEvent.encode(t.pointer_device_event,n.uint32(210).fork()).ldelim(),t.auth_2fa!=null&&Object.hasOwnProperty.call(t,"auth_2fa")&&u.hbb.Auth2FA.encode(t.auth_2fa,n.uint32(218).fork()).ldelim(),t.multi_clipboards!=null&&Object.hasOwnProperty.call(t,"multi_clipboards")&&u.hbb.MultiClipboards.encode(t.multi_clipboards,n.uint32(226).fork()).ldelim(),n},i.encodeDelimited=function(t,n){return this.encode(t,n).ldelim()},i.decode=function(t,n,r,f){if(t instanceof s||(t=s.create(t)),f===void 0&&(f=0),f>s.recursionLimit)throw Error("maximum nesting depth exceeded");let d=n===void 0?t.len:t.pos+n,c=new u.hbb.Message;for(;t.pos<d;){let k=t.uint32();if(k===r)break;switch(k>>>3){case 3:{c.signed_id=u.hbb.SignedId.decode(t,t.uint32(),void 0,f+1);break}case 4:{c.public_key=u.hbb.PublicKey.decode(t,t.uint32(),void 0,f+1);break}case 5:{c.test_delay=u.hbb.TestDelay.decode(t,t.uint32(),void 0,f+1);break}case 6:{c.video_frame=u.hbb.VideoFrame.decode(t,t.uint32(),void 0,f+1);break}case 7:{c.login_request=u.hbb.LoginRequest.decode(t,t.uint32(),void 0,f+1);break}case 8:{c.login_response=u.hbb.LoginResponse.decode(t,t.uint32(),void 0,f+1);break}case 9:{c.hash=u.hbb.Hash.decode(t,t.uint32(),void 0,f+1);break}case 10:{c.mouse_event=u.hbb.MouseEvent.decode(t,t.uint32(),void 0,f+1);break}case 11:{c.audio_frame=u.hbb.AudioFrame.decode(t,t.uint32(),void 0,f+1);break}case 12:{c.cursor_data=u.hbb.CursorData.decode(t,t.uint32(),void 0,f+1);break}case 13:{c.cursor_position=u.hbb.CursorPosition.decode(t,t.uint32(),void 0,f+1);break}case 14:{c.cursor_id=t.uint64();break}case 15:{c.key_event=u.hbb.KeyEvent.decode(t,t.uint32(),void 0,f+1);break}case 16:{c.clipboard=u.hbb.Clipboard.decode(t,t.uint32(),void 0,f+1);break}case 17:{c.file_action=u.hbb.FileAction.decode(t,t.uint32(),void 0,f+1);break}case 18:{c.file_response=u.hbb.FileResponse.decode(t,t.uint32(),void 0,f+1);break}case 19:{c.misc=u.hbb.Misc.decode(t,t.uint32(),void 0,f+1);break}case 20:{c.cliprdr=u.hbb.Cliprdr.decode(t,t.uint32(),void 0,f+1);break}case 21:{c.message_box=u.hbb.MessageBox.decode(t,t.uint32(),void 0,f+1);break}case 22:{c.switch_sides_response=u.hbb.SwitchSidesResponse.decode(t,t.uint32(),void 0,f+1);break}case 23:{c.voice_call_request=u.hbb.VoiceCallRequest.decode(t,t.uint32(),void 0,f+1);break}case 24:{c.voice_call_response=u.hbb.VoiceCallResponse.decode(t,t.uint32(),void 0,f+1);break}case 25:{c.peer_info=u.hbb.PeerInfo.decode(t,t.uint32(),void 0,f+1);break}case 26:{c.pointer_device_event=u.hbb.PointerDeviceEvent.decode(t,t.uint32(),void 0,f+1);break}case 27:{c.auth_2fa=u.hbb.Auth2FA.decode(t,t.uint32(),void 0,f+1);break}case 28:{c.multi_clipboards=u.hbb.MultiClipboards.decode(t,t.uint32(),void 0,f+1);break}default:t.skipType(k&7,f);break}}return c},i.decodeDelimited=function(t){return t instanceof s||(t=new s(t)),this.decode(t,t.uint32())},i.verify=function(t,n){if(typeof t!="object"||t===null)return"object expected";if(n===void 0&&(n=0),n>l.recursionLimit)return"maximum nesting depth exceeded";let r={};if(t.signed_id!=null&&t.hasOwnProperty("signed_id")){r.union=1;{let f=u.hbb.SignedId.verify(t.signed_id,n+1);if(f)return"signed_id."+f}}if(t.public_key!=null&&t.hasOwnProperty("public_key")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PublicKey.verify(t.public_key,n+1);if(f)return"public_key."+f}}if(t.test_delay!=null&&t.hasOwnProperty("test_delay")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.TestDelay.verify(t.test_delay,n+1);if(f)return"test_delay."+f}}if(t.video_frame!=null&&t.hasOwnProperty("video_frame")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.VideoFrame.verify(t.video_frame,n+1);if(f)return"video_frame."+f}}if(t.login_request!=null&&t.hasOwnProperty("login_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.LoginRequest.verify(t.login_request,n+1);if(f)return"login_request."+f}}if(t.login_response!=null&&t.hasOwnProperty("login_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.LoginResponse.verify(t.login_response,n+1);if(f)return"login_response."+f}}if(t.hash!=null&&t.hasOwnProperty("hash")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Hash.verify(t.hash,n+1);if(f)return"hash."+f}}if(t.mouse_event!=null&&t.hasOwnProperty("mouse_event")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.MouseEvent.verify(t.mouse_event,n+1);if(f)return"mouse_event."+f}}if(t.audio_frame!=null&&t.hasOwnProperty("audio_frame")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.AudioFrame.verify(t.audio_frame,n+1);if(f)return"audio_frame."+f}}if(t.cursor_data!=null&&t.hasOwnProperty("cursor_data")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CursorData.verify(t.cursor_data,n+1);if(f)return"cursor_data."+f}}if(t.cursor_position!=null&&t.hasOwnProperty("cursor_position")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.CursorPosition.verify(t.cursor_position,n+1);if(f)return"cursor_position."+f}}if(t.cursor_id!=null&&t.hasOwnProperty("cursor_id")){if(r.union===1)return"union: multiple values";if(r.union=1,!l.isInteger(t.cursor_id)&&!(t.cursor_id&&l.isInteger(t.cursor_id.low)&&l.isInteger(t.cursor_id.high)))return"cursor_id: integer|Long expected"}if(t.key_event!=null&&t.hasOwnProperty("key_event")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.KeyEvent.verify(t.key_event,n+1);if(f)return"key_event."+f}}if(t.clipboard!=null&&t.hasOwnProperty("clipboard")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Clipboard.verify(t.clipboard,n+1);if(f)return"clipboard."+f}}if(t.file_action!=null&&t.hasOwnProperty("file_action")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileAction.verify(t.file_action,n+1);if(f)return"file_action."+f}}if(t.file_response!=null&&t.hasOwnProperty("file_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.FileResponse.verify(t.file_response,n+1);if(f)return"file_response."+f}}if(t.misc!=null&&t.hasOwnProperty("misc")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Misc.verify(t.misc,n+1);if(f)return"misc."+f}}if(t.cliprdr!=null&&t.hasOwnProperty("cliprdr")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Cliprdr.verify(t.cliprdr,n+1);if(f)return"cliprdr."+f}}if(t.message_box!=null&&t.hasOwnProperty("message_box")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.MessageBox.verify(t.message_box,n+1);if(f)return"message_box."+f}}if(t.switch_sides_response!=null&&t.hasOwnProperty("switch_sides_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.SwitchSidesResponse.verify(t.switch_sides_response,n+1);if(f)return"switch_sides_response."+f}}if(t.voice_call_request!=null&&t.hasOwnProperty("voice_call_request")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.VoiceCallRequest.verify(t.voice_call_request,n+1);if(f)return"voice_call_request."+f}}if(t.voice_call_response!=null&&t.hasOwnProperty("voice_call_response")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.VoiceCallResponse.verify(t.voice_call_response,n+1);if(f)return"voice_call_response."+f}}if(t.peer_info!=null&&t.hasOwnProperty("peer_info")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PeerInfo.verify(t.peer_info,n+1);if(f)return"peer_info."+f}}if(t.pointer_device_event!=null&&t.hasOwnProperty("pointer_device_event")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.PointerDeviceEvent.verify(t.pointer_device_event,n+1);if(f)return"pointer_device_event."+f}}if(t.auth_2fa!=null&&t.hasOwnProperty("auth_2fa")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.Auth2FA.verify(t.auth_2fa,n+1);if(f)return"auth_2fa."+f}}if(t.multi_clipboards!=null&&t.hasOwnProperty("multi_clipboards")){if(r.union===1)return"union: multiple values";r.union=1;{let f=u.hbb.MultiClipboards.verify(t.multi_clipboards,n+1);if(f)return"multi_clipboards."+f}}return null},i.fromObject=function(t,n){if(t instanceof u.hbb.Message)return t;if(n===void 0&&(n=0),n>l.recursionLimit)throw Error("maximum nesting depth exceeded");let r=new u.hbb.Message;if(t.signed_id!=null){if(typeof t.signed_id!="object")throw TypeError(".hbb.Message.signed_id: object expected");r.signed_id=u.hbb.SignedId.fromObject(t.signed_id,n+1)}if(t.public_key!=null){if(typeof t.public_key!="object")throw TypeError(".hbb.Message.public_key: object expected");r.public_key=u.hbb.PublicKey.fromObject(t.public_key,n+1)}if(t.test_delay!=null){if(typeof t.test_delay!="object")throw TypeError(".hbb.Message.test_delay: object expected");r.test_delay=u.hbb.TestDelay.fromObject(t.test_delay,n+1)}if(t.video_frame!=null){if(typeof t.video_frame!="object")throw TypeError(".hbb.Message.video_frame: object expected");r.video_frame=u.hbb.VideoFrame.fromObject(t.video_frame,n+1)}if(t.login_request!=null){if(typeof t.login_request!="object")throw TypeError(".hbb.Message.login_request: object expected");r.login_request=u.hbb.LoginRequest.fromObject(t.login_request,n+1)}if(t.login_response!=null){if(typeof t.login_response!="object")throw TypeError(".hbb.Message.login_response: object expected");r.login_response=u.hbb.LoginResponse.fromObject(t.login_response,n+1)}if(t.hash!=null){if(typeof t.hash!="object")throw TypeError(".hbb.Message.hash: object expected");r.hash=u.hbb.Hash.fromObject(t.hash,n+1)}if(t.mouse_event!=null){if(typeof t.mouse_event!="object")throw TypeError(".hbb.Message.mouse_event: object expected");r.mouse_event=u.hbb.MouseEvent.fromObject(t.mouse_event,n+1)}if(t.audio_frame!=null){if(typeof t.audio_frame!="object")throw TypeError(".hbb.Message.audio_frame: object expected");r.audio_frame=u.hbb.AudioFrame.fromObject(t.audio_frame,n+1)}if(t.cursor_data!=null){if(typeof t.cursor_data!="object")throw TypeError(".hbb.Message.cursor_data: object expected");r.cursor_data=u.hbb.CursorData.fromObject(t.cursor_data,n+1)}if(t.cursor_position!=null){if(typeof t.cursor_position!="object")throw TypeError(".hbb.Message.cursor_position: object expected");r.cursor_position=u.hbb.CursorPosition.fromObject(t.cursor_position,n+1)}if(t.cursor_id!=null&&(l.Long?(r.cursor_id=l.Long.fromValue(t.cursor_id)).unsigned=!0:typeof t.cursor_id=="string"?r.cursor_id=parseInt(t.cursor_id,10):typeof t.cursor_id=="number"?r.cursor_id=t.cursor_id:typeof t.cursor_id=="object"&&(r.cursor_id=new l.LongBits(t.cursor_id.low>>>0,t.cursor_id.high>>>0).toNumber(!0))),t.key_event!=null){if(typeof t.key_event!="object")throw TypeError(".hbb.Message.key_event: object expected");r.key_event=u.hbb.KeyEvent.fromObject(t.key_event,n+1)}if(t.clipboard!=null){if(typeof t.clipboard!="object")throw TypeError(".hbb.Message.clipboard: object expected");r.clipboard=u.hbb.Clipboard.fromObject(t.clipboard,n+1)}if(t.file_action!=null){if(typeof t.file_action!="object")throw TypeError(".hbb.Message.file_action: object expected");r.file_action=u.hbb.FileAction.fromObject(t.file_action,n+1)}if(t.file_response!=null){if(typeof t.file_response!="object")throw TypeError(".hbb.Message.file_response: object expected");r.file_response=u.hbb.FileResponse.fromObject(t.file_response,n+1)}if(t.misc!=null){if(typeof t.misc!="object")throw TypeError(".hbb.Message.misc: object expected");r.misc=u.hbb.Misc.fromObject(t.misc,n+1)}if(t.cliprdr!=null){if(typeof t.cliprdr!="object")throw TypeError(".hbb.Message.cliprdr: object expected");r.cliprdr=u.hbb.Cliprdr.fromObject(t.cliprdr,n+1)}if(t.message_box!=null){if(typeof t.message_box!="object")throw TypeError(".hbb.Message.message_box: object expected");r.message_box=u.hbb.MessageBox.fromObject(t.message_box,n+1)}if(t.switch_sides_response!=null){if(typeof t.switch_sides_response!="object")throw TypeError(".hbb.Message.switch_sides_response: object expected");r.switch_sides_response=u.hbb.SwitchSidesResponse.fromObject(t.switch_sides_response,n+1)}if(t.voice_call_request!=null){if(typeof t.voice_call_request!="object")throw TypeError(".hbb.Message.voice_call_request: object expected");r.voice_call_request=u.hbb.VoiceCallRequest.fromObject(t.voice_call_request,n+1)}if(t.voice_call_response!=null){if(typeof t.voice_call_response!="object")throw TypeError(".hbb.Message.voice_call_response: object expected");r.voice_call_response=u.hbb.VoiceCallResponse.fromObject(t.voice_call_response,n+1)}if(t.peer_info!=null){if(typeof t.peer_info!="object")throw TypeError(".hbb.Message.peer_info: object expected");r.peer_info=u.hbb.PeerInfo.fromObject(t.peer_info,n+1)}if(t.pointer_device_event!=null){if(typeof t.pointer_device_event!="object")throw TypeError(".hbb.Message.pointer_device_event: object expected");r.pointer_device_event=u.hbb.PointerDeviceEvent.fromObject(t.pointer_device_event,n+1)}if(t.auth_2fa!=null){if(typeof t.auth_2fa!="object")throw TypeError(".hbb.Message.auth_2fa: object expected");r.auth_2fa=u.hbb.Auth2FA.fromObject(t.auth_2fa,n+1)}if(t.multi_clipboards!=null){if(typeof t.multi_clipboards!="object")throw TypeError(".hbb.Message.multi_clipboards: object expected");r.multi_clipboards=u.hbb.MultiClipboards.fromObject(t.multi_clipboards,n+1)}return r},i.toObject=function(t,n){n||(n={});let r={};return t.signed_id!=null&&t.hasOwnProperty("signed_id")&&(r.signed_id=u.hbb.SignedId.toObject(t.signed_id,n),n.oneofs&&(r.union="signed_id")),t.public_key!=null&&t.hasOwnProperty("public_key")&&(r.public_key=u.hbb.PublicKey.toObject(t.public_key,n),n.oneofs&&(r.union="public_key")),t.test_delay!=null&&t.hasOwnProperty("test_delay")&&(r.test_delay=u.hbb.TestDelay.toObject(t.test_delay,n),n.oneofs&&(r.union="test_delay")),t.video_frame!=null&&t.hasOwnProperty("video_frame")&&(r.video_frame=u.hbb.VideoFrame.toObject(t.video_frame,n),n.oneofs&&(r.union="video_frame")),t.login_request!=null&&t.hasOwnProperty("login_request")&&(r.login_request=u.hbb.LoginRequest.toObject(t.login_request,n),n.oneofs&&(r.union="login_request")),t.login_response!=null&&t.hasOwnProperty("login_response")&&(r.login_response=u.hbb.LoginResponse.toObject(t.login_response,n),n.oneofs&&(r.union="login_response")),t.hash!=null&&t.hasOwnProperty("hash")&&(r.hash=u.hbb.Hash.toObject(t.hash,n),n.oneofs&&(r.union="hash")),t.mouse_event!=null&&t.hasOwnProperty("mouse_event")&&(r.mouse_event=u.hbb.MouseEvent.toObject(t.mouse_event,n),n.oneofs&&(r.union="mouse_event")),t.audio_frame!=null&&t.hasOwnProperty("audio_frame")&&(r.audio_frame=u.hbb.AudioFrame.toObject(t.audio_frame,n),n.oneofs&&(r.union="audio_frame")),t.cursor_data!=null&&t.hasOwnProperty("cursor_data")&&(r.cursor_data=u.hbb.CursorData.toObject(t.cursor_data,n),n.oneofs&&(r.union="cursor_data")),t.cursor_position!=null&&t.hasOwnProperty("cursor_position")&&(r.cursor_position=u.hbb.CursorPosition.toObject(t.cursor_position,n),n.oneofs&&(r.union="cursor_position")),t.cursor_id!=null&&t.hasOwnProperty("cursor_id")&&(typeof t.cursor_id=="number"?r.cursor_id=n.longs===String?String(t.cursor_id):t.cursor_id:r.cursor_id=n.longs===String?l.Long.prototype.toString.call(t.cursor_id):n.longs===Number?new l.LongBits(t.cursor_id.low>>>0,t.cursor_id.high>>>0).toNumber(!0):t.cursor_id,n.oneofs&&(r.union="cursor_id")),t.key_event!=null&&t.hasOwnProperty("key_event")&&(r.key_event=u.hbb.KeyEvent.toObject(t.key_event,n),n.oneofs&&(r.union="key_event")),t.clipboard!=null&&t.hasOwnProperty("clipboard")&&(r.clipboard=u.hbb.Clipboard.toObject(t.clipboard,n),n.oneofs&&(r.union="clipboard")),t.file_action!=null&&t.hasOwnProperty("file_action")&&(r.file_action=u.hbb.FileAction.toObject(t.file_action,n),n.oneofs&&(r.union="file_action")),t.file_response!=null&&t.hasOwnProperty("file_response")&&(r.file_response=u.hbb.FileResponse.toObject(t.file_response,n),n.oneofs&&(r.union="file_response")),t.misc!=null&&t.hasOwnProperty("misc")&&(r.misc=u.hbb.Misc.toObject(t.misc,n),n.oneofs&&(r.union="misc")),t.cliprdr!=null&&t.hasOwnProperty("cliprdr")&&(r.cliprdr=u.hbb.Cliprdr.toObject(t.cliprdr,n),n.oneofs&&(r.union="cliprdr")),t.message_box!=null&&t.hasOwnProperty("message_box")&&(r.message_box=u.hbb.MessageBox.toObject(t.message_box,n),n.oneofs&&(r.union="message_box")),t.switch_sides_response!=null&&t.hasOwnProperty("switch_sides_response")&&(r.switch_sides_response=u.hbb.SwitchSidesResponse.toObject(t.switch_sides_response,n),n.oneofs&&(r.union="switch_sides_response")),t.voice_call_request!=null&&t.hasOwnProperty("voice_call_request")&&(r.voice_call_request=u.hbb.VoiceCallRequest.toObject(t.voice_call_request,n),n.oneofs&&(r.union="voice_call_request")),t.voice_call_response!=null&&t.hasOwnProperty("voice_call_response")&&(r.voice_call_response=u.hbb.VoiceCallResponse.toObject(t.voice_call_response,n),n.oneofs&&(r.union="voice_call_response")),t.peer_info!=null&&t.hasOwnProperty("peer_info")&&(r.peer_info=u.hbb.PeerInfo.toObject(t.peer_info,n),n.oneofs&&(r.union="peer_info")),t.pointer_device_event!=null&&t.hasOwnProperty("pointer_device_event")&&(r.pointer_device_event=u.hbb.PointerDeviceEvent.toObject(t.pointer_device_event,n),n.oneofs&&(r.union="pointer_device_event")),t.auth_2fa!=null&&t.hasOwnProperty("auth_2fa")&&(r.auth_2fa=u.hbb.Auth2FA.toObject(t.auth_2fa,n),n.oneofs&&(r.union="auth_2fa")),t.multi_clipboards!=null&&t.hasOwnProperty("multi_clipboards")&&(r.multi_clipboards=u.hbb.MultiClipboards.toObject(t.multi_clipboards,n),n.oneofs&&(r.union="multi_clipboards")),r},i.prototype.toJSON=function(){return this.constructor.toObject(this,P.util.toJSONOptions)},i.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/hbb.Message"},i}(),p})();function tr(p,i,o,e,t=1e4){return new Promise((n,r)=>{let f=new WebSocket(p);f.binaryType="arraybuffer";let d=setTimeout(()=>{c(),r(new Error(`punchHole: timeout after ${t}ms`))},t);function c(){clearTimeout(d);try{f.close()}catch{}}f.onopen=()=>{let k=E.RendezvousMessage.create({punch_hole_request:E.PunchHoleRequest.create({id:i,nat_type:E.NatType.SYMMETRIC,licence_key:o,conn_type:E.ConnType.DEFAULT_CONN,version:e})}),q=E.RendezvousMessage.encode(k).finish();f.send(q)},f.onmessage=k=>{let q=new Uint8Array(k.data),K;try{K=E.RendezvousMessage.decode(q)}catch(V){c(),r(new Error(`punchHole: decode failure: ${V}`));return}let W=K.punch_hole_response;if(W){if(!W.socket_addr||W.socket_addr.length===0){c(),r(new Error(Jr(W)));return}c(),n({signedIdPk:W.pk||new Uint8Array(0),relayServer:W.relay_server||"",peerUuid:"",peerSocketAddr:W.socket_addr||new Uint8Array(0)});return}let re=K.relay_response;if(re){c(),n({signedIdPk:re.pk||new Uint8Array(0),relayServer:re.relay_server||"",peerUuid:re.uuid||"",peerSocketAddr:re.socket_addr||new Uint8Array(0)});return}},f.onerror=()=>{c(),r(new Error(`punchHole: WebSocket error connecting to ${p}`))},f.onclose=k=>{clearTimeout(d),r(new Error(`punchHole: socket closed (code=${k.code} reason=${k.reason||"n/a"})`))}})}function Jr(p){if(p.other_failure)return p.other_failure;switch(p.failure){case E.PunchHoleResponse.Failure.ID_NOT_EXIST:return"Peer ID not registered with this server";case E.PunchHoleResponse.Failure.OFFLINE:return"Peer is offline";case E.PunchHoleResponse.Failure.LICENSE_MISMATCH:return"License key mismatch";case E.PunchHoleResponse.Failure.LICENSE_OVERUSE:return"License overuse";default:return"Rendezvous failed (peer offline or unknown reason)"}}function nr(){let p=globalThis.crypto;if(typeof p.randomUUID=="function")return p.randomUUID();let i=new Uint8Array(16);p.getRandomValues(i),i[6]=i[6]&15|64,i[8]=i[8]&63|128;let o=Array.from(i,e=>e.toString(16).padStart(2,"0"));return`${o.slice(0,4).join("")}-${o.slice(4,6).join("")}-${o.slice(6,8).join("")}-${o.slice(8,10).join("")}-${o.slice(10,16).join("")}`}function ir(p,i=21118){return`${location.protocol==="https:"?"wss":"ws"}://${p}:${i}/`}function rr(p,i=21119){return`${location.protocol==="https:"?"wss":"ws"}://${p}:${i}/`}var At=class p{ws;readBuf=[];waiters=[];closed=!1;closeError=null;static async connect(i){let o=new p;return await o._open(i),o}async _open(i){let o=i.connectTimeoutMs??1e4;return new Promise((e,t)=>{this.ws=new WebSocket(i.wsUrl),this.ws.binaryType="arraybuffer";let n=setTimeout(()=>{this._fail(new Error(`relay: connect timeout after ${o}ms`)),t(new Error(`relay: connect timeout after ${o}ms`))},o);this.ws.onopen=()=>{clearTimeout(n);let r=E.RendezvousMessage.create({request_relay:E.RequestRelay.create({id:i.peerId,uuid:i.uuid,licence_key:i.licenceKey,conn_type:E.ConnType.DEFAULT_CONN})}),f=E.RendezvousMessage.encode(r).finish();this.ws.send(f),e()},this.ws.onmessage=r=>{let f=new Uint8Array(r.data),d=this.waiters.shift();d?d(f):this.readBuf.push(f)},this.ws.onerror=()=>{clearTimeout(n),this._fail(new Error(`relay: WebSocket error on ${i.wsUrl}`)),t(new Error(`relay: WebSocket error on ${i.wsUrl}`))},this.ws.onclose=r=>{clearTimeout(n),this._fail(new Error(`relay: socket closed (code=${r.code} reason=${r.reason||"n/a"})`))}})}next(){return this.readBuf.length>0?Promise.resolve(this.readBuf.shift()):this.closed?Promise.resolve(null):new Promise((i,o)=>{this.waiters.push(e=>{this.closeError&&e===null?o(this.closeError):i(e)})})}send(i){if(this.closed)throw new Error("relay: send on closed connection");this.ws.send(i)}close(){this._fail(new Error("relay: closed by client"))}_fail(i){if(!this.closed){this.closed=!0,this.closeError=i;try{this.ws.close()}catch{}for(;this.waiters.length>0;)this.waiters.shift()(null)}}};var Ct=class p{constructor(i,o,e,t){this.relay=i;this.secretboxKey=o;this.sendSeq=e;this.recvSeq=t}static async open(i){let o=await i.relay.next();if(!o)throw new Error("session: relay closed before SignedId");let e=E.Message.decode(o);if(!e.signed_id)throw new Error(`session: expected signed_id, got ${or(e)}`);let t=e.signed_id.id;if(!t||t.length===0)throw new Error("session: SignedId.id is empty");let n,r;try{let Fe=Lt(t,i.peerSignPk),Pe=E.IdPk.decode(Fe);r=Pe.id||"",n=Pe.pk||new Uint8Array(0)}catch(Fe){throw new Error(`session: SignedId verify failed (peer's Ed25519 sign pk does not match the rendezvous-signed pk): ${Fe}`)}if(r!==i.peerId)throw new Error(`session: SignedId.id mismatch (expected ${i.peerId}, got ${r})`);if(n.length!==32)throw new Error(`session: peer Curve25519 box pk has wrong length ${n.length}`);let f=Xn(),d=Qn(),c=Zn(d,n,f.secretKey),k=E.Message.create({public_key:E.PublicKey.create({asymmetric_value:f.publicKey,symmetric_value:c})});i.relay.send(E.Message.encode(k).finish());let q=new p(i.relay,d,0n,0n),K=await q.recv();if(!K.hash)throw new Error(`session: expected hash, got ${or(K)}`);let W=K.hash.salt||"",re=K.hash.challenge||"",V=new TextEncoder,be=V.encode(W),Ve=V.encode(re),Ze=ln(cn(i.password,be)),We=ln(cn(Ze,Ve)),Ue=E.Message.create({login_request:E.LoginRequest.create({username:i.peerId,password:We,my_id:"web-client",my_name:i.myName,version:i.clientVersion,my_platform:"Web",session_id:i.sessionId,video_ack_required:!1,option:E.OptionMessage.create({supported_decoding:E.SupportedDecoding.create({ability_vp9:1,ability_h264:1,prefer:E.SupportedDecoding.PreferCodec.VP9}),disable_audio:E.OptionMessage.BoolOption.No,disable_clipboard:E.OptionMessage.BoolOption.No})})});await q.send(Ue);let De=[];for(;;){let Fe=await q.recv();if(Fe.test_delay){let Pe=Fe.test_delay;await q.send(E.Message.create({test_delay:E.TestDelay.create({time:Pe.time,from_client:!0,last_delay:Pe.last_delay,target_bitrate:Pe.target_bitrate})}));continue}if(Fe.login_response){let Pe=Fe.login_response;if(Pe.error)throw new Error(`session: login refused: ${Pe.error}`);if(!Pe.peer_info)throw new Error("session: login_response missing peer_info");return console.log(`[rustdesk-web] session: login OK, peer=${Pe.peer_info.hostname}/${Pe.peer_info.platform} v${Pe.peer_info.version}`),{session:q,peerInfo:Pe.peer_info,preloginExtras:De}}De.push(Fe)}}async send(i){let o=E.Message.encode(i).finish();this.sendSeq+=1n;let e=gn(o,this.sendSeq,this.secretboxKey);this.relay.send(e)}async recv(){let i=await this.relay.next();if(!i)throw new Error("session: relay closed");this.recvSeq+=1n;let o=ei(i,this.recvSeq,this.secretboxKey);return E.Message.decode(o)}close(){this.relay.close()}};function or(p){for(let i of["signed_id","public_key","test_delay","video_frame","login_request","login_response","hash","mouse_event","audio_frame","key_event","clipboard","misc","peer_info"])if(p[i])return i;return"unknown"}var Bt=class{decoder=null;currentCodec="";onFrame;constructor(i){if(this.onFrame=i,typeof VideoDecoder>"u"){let e=!window.isSecureContext?"Open this page via http://localhost or https:// \u2014 WebCodecs is gated to secure contexts and the LAN IP doesn't qualify.":"Update to Chrome 94+, Firefox 130+, or Safari 16.4+.";throw new Error(`WebCodecs VideoDecoder unavailable. ${e}`)}}pushVideoFrame(i){let o=i.vp9s?.frames||i.vp8s?.frames||i.av1s?.frames||i.h264s?.frames||i.h265s?.frames,e=this.detectCodec(i);if(!(!o||o.length===0||!e)){e!==this.currentCodec&&this.configureCodec(e);for(let t of o)this.decode(t,e)}}detectCodec(i){return i.vp9s?"vp09.00.10.08":i.vp8s?"vp8":i.av1s?"av01.0.04M.08":i.h264s?"avc1.42E01E":i.h265s?"hvc1.1.6.L93.B0":""}configureCodec(i){this.decoder&&this.decoder.close(),this.currentCodec=i,this.decoder=new VideoDecoder({output:o=>this.onFrame(o),error:o=>{console.error("[rustdesk-web] VideoDecoder error:",o)}}),this.decoder.configure({codec:i,optimizeForLatency:!0})}decode(i,o){if(!this.decoder||!i.data||i.data.length===0)return;let e=i.data,t=typeof i.pts=="number"?i.pts:Number(i.pts||0);try{let n=new EncodedVideoChunk({type:i.key?"key":"delta",timestamp:t*1e3,data:e});this.decoder.decode(n)}catch(n){console.error("[rustdesk-web] decode chunk failed:",n)}}close(){if(this.decoder){try{this.decoder.close()}catch{}this.decoder=null}}};var Mt=class{decoder=null;ctx=null;playhead=0;timestamp=0;muted=!1;gain=null;configure(i){if(typeof AudioDecoder>"u")throw new Error("WebCodecs AudioDecoder unavailable. Open via http://localhost or https:// \u2014 secure-context only.");let o=i.sample_rate||48e3,e=i.channels||2;this.decoder&&this.decoder.close(),this.ctx=new AudioContext({sampleRate:o,latencyHint:"interactive"}),this.gain=this.ctx.createGain(),this.gain.connect(this.ctx.destination),this.playhead=this.ctx.currentTime+.05,this.timestamp=0,this.decoder=new AudioDecoder({output:t=>this.onAudioData(t),error:t=>console.error("[rustdesk-web] AudioDecoder error:",t)}),this.decoder.configure({codec:"opus",sampleRate:o,numberOfChannels:e})}pushFrame(i){if(!(!this.decoder||i.length===0||this.muted))try{let o=new EncodedAudioChunk({type:"key",timestamp:this.timestamp,data:i});this.timestamp+=2e4,this.decoder.decode(o)}catch(o){console.error("[rustdesk-web] audio decode failed:",o)}}async resume(){this.ctx&&this.ctx.state==="suspended"&&await this.ctx.resume()}setMuted(i){this.muted=i,this.gain&&this.ctx&&this.gain.gain.setValueAtTime(i?0:1,this.ctx.currentTime)}isMuted(){return this.muted}close(){if(this.decoder){try{this.decoder.close()}catch{}this.decoder=null}if(this.ctx){try{this.ctx.close()}catch{}this.ctx=null}}onAudioData(i){if(!this.ctx||!this.gain){i.close();return}try{let o=i.numberOfChannels,e=i.numberOfFrames,t=i.sampleRate,n=this.ctx.createBuffer(o,e,t);if((i.format||"f32").endsWith("-planar"))for(let c=0;c<o;c++)i.copyTo(n.getChannelData(c),{planeIndex:c});else{let c=new Float32Array(o*e);i.copyTo(c,{planeIndex:0});for(let k=0;k<o;k++){let q=n.getChannelData(k);for(let K=0;K<e;K++)q[K]=c[K*o+k]}}let f=this.ctx.createBufferSource();f.buffer=n,f.connect(this.gain);let d=this.ctx.currentTime;this.playhead<d&&(this.playhead=d+.05),f.start(this.playhead),this.playhead+=e/t}catch(o){console.error("[rustdesk-web] audio render failed:",o)}finally{i.close()}}};var It=class{canvas;ctx;width=0;height=0;frameTimes=[];constructor(i){this.canvas=document.createElement("canvas"),this.canvas.className="rd-canvas",i.appendChild(this.canvas);let o=this.canvas.getContext("2d",{alpha:!1});if(!o)throw new Error("canvas: 2d context not available");this.ctx=o}draw(i){try{(i.codedWidth!==this.width||i.codedHeight!==this.height)&&(this.width=i.codedWidth,this.height=i.codedHeight,this.canvas.width=this.width,this.canvas.height=this.height),this.ctx.drawImage(i,0,0),this.tickFps()}catch(o){console.error("[rustdesk-web] canvas draw failed:",o)}finally{i.close()}}tickFps(){let i=performance.now();for(this.frameTimes.push(i);this.frameTimes.length>0&&i-this.frameTimes[0]>1e3;)this.frameTimes.shift()}fps(){return this.frameTimes.length}size(){return{width:this.width,height:this.height}}rect(){return this.canvas.getBoundingClientRect()}el(){return this.canvas}};var Ur=0,Hr=1,zr=2,Kr=3,$r=1,Vr=2,Wr=4,Yr=8,Gr=16;function ur(p){switch(p){case 0:return $r;case 1:return Wr;case 2:return Vr;case 3:return Yr;case 4:return Gr;default:return 0}}function fr(p,i){let o=p.el(),e=(q,K,W,re)=>{let V=[];re.altKey&&V.push(E.ControlKey.Alt),re.ctrlKey&&V.push(E.ControlKey.Control),re.shiftKey&&V.push(E.ControlKey.Shift),re.metaKey&&V.push(E.ControlKey.Meta),i.send(E.Message.create({mouse_event:E.MouseEvent.create({mask:q,x:Math.round(K),y:Math.round(W),modifiers:V})})).catch(()=>{})},t=(q,K)=>{let W=p.size();if(!W.width||!W.height)return null;let re=p.rect();if(re.width<=0||re.height<=0)return null;let V=Math.min(re.width/W.width,re.height/W.height),be=W.width*V,Ve=W.height*V,Ze=re.left+(re.width-be)/2,We=re.top+(re.height-Ve)/2,Ue=(q-Ze)/V,De=(K-We)/V;return Ue<0||De<0||Ue>W.width||De>W.height?null:{x:Ue,y:De}},n=0,r=q=>{let K=t(q.clientX,q.clientY);if(!K)return;let W=n<<3|Ur;e(W,K.x,K.y,q)},f=q=>{let K=t(q.clientX,q.clientY);if(!K)return;let W=ur(q.button);if(!W)return;n|=W;let re=W<<3|Hr;e(re,K.x,K.y,q),o.focus({preventScroll:!0}),q.button===2&&q.preventDefault()},d=q=>{let K=t(q.clientX,q.clientY);if(!K)return;let W=ur(q.button);if(!W)return;n&=~W;let re=W<<3|zr;e(re,K.x,K.y,q)},c=q=>{if(!t(q.clientX,q.clientY))return;let W=(Ve,Ze)=>Ze===WheelEvent.DOM_DELTA_PIXEL?Math.max(-5,Math.min(5,Math.round(Ve/16))):Math.max(-5,Math.min(5,Math.round(Ve))),re=W(q.deltaX,q.deltaMode),V=W(-q.deltaY,q.deltaMode);if(re===0&&V===0)return;e(Kr,re,V,q),q.preventDefault()},k=q=>{q.preventDefault()};return o.addEventListener("mousemove",r),o.addEventListener("mousedown",f),o.addEventListener("mouseup",d),o.addEventListener("wheel",c,{passive:!1}),o.addEventListener("contextmenu",k),()=>{o.removeEventListener("mousemove",r),o.removeEventListener("mousedown",f),o.removeEventListener("mouseup",d),o.removeEventListener("wheel",c),o.removeEventListener("contextmenu",k)}}var Xr={AltLeft:E.ControlKey.Alt,AltRight:E.ControlKey.RAlt,ControlLeft:E.ControlKey.Control,ControlRight:E.ControlKey.RControl,ShiftLeft:E.ControlKey.Shift,ShiftRight:E.ControlKey.RShift,MetaLeft:E.ControlKey.Meta,MetaRight:E.ControlKey.RWin,OSLeft:E.ControlKey.Meta,OSRight:E.ControlKey.RWin,CapsLock:E.ControlKey.CapsLock,Backspace:E.ControlKey.Backspace,Delete:E.ControlKey.Delete,Tab:E.ControlKey.Tab,Enter:E.ControlKey.Return,NumpadEnter:E.ControlKey.NumpadEnter,Escape:E.ControlKey.Escape,Space:E.ControlKey.Space,Insert:E.ControlKey.Insert,Home:E.ControlKey.Home,End:E.ControlKey.End,PageUp:E.ControlKey.PageUp,PageDown:E.ControlKey.PageDown,ArrowUp:E.ControlKey.UpArrow,ArrowDown:E.ControlKey.DownArrow,ArrowLeft:E.ControlKey.LeftArrow,ArrowRight:E.ControlKey.RightArrow,F1:E.ControlKey.F1,F2:E.ControlKey.F2,F3:E.ControlKey.F3,F4:E.ControlKey.F4,F5:E.ControlKey.F5,F6:E.ControlKey.F6,F7:E.ControlKey.F7,F8:E.ControlKey.F8,F9:E.ControlKey.F9,F10:E.ControlKey.F10,F11:E.ControlKey.F11,F12:E.ControlKey.F12,PrintScreen:E.ControlKey.Snapshot,ScrollLock:E.ControlKey.Scroll,Pause:E.ControlKey.Pause,NumLock:E.ControlKey.NumLock,ContextMenu:E.ControlKey.Apps,Numpad0:E.ControlKey.Numpad0,Numpad1:E.ControlKey.Numpad1,Numpad2:E.ControlKey.Numpad2,Numpad3:E.ControlKey.Numpad3,Numpad4:E.ControlKey.Numpad4,Numpad5:E.ControlKey.Numpad5,Numpad6:E.ControlKey.Numpad6,Numpad7:E.ControlKey.Numpad7,Numpad8:E.ControlKey.Numpad8,Numpad9:E.ControlKey.Numpad9,NumpadAdd:E.ControlKey.Add,NumpadSubtract:E.ControlKey.Subtract,NumpadMultiply:E.ControlKey.Multiply,NumpadDivide:E.ControlKey.Divide,NumpadDecimal:E.ControlKey.Decimal,NumpadEqual:E.ControlKey.Equals};function Qr(p){let i=[];return p.altKey&&i.push(E.ControlKey.Alt),p.ctrlKey&&i.push(E.ControlKey.Control),p.shiftKey&&i.push(E.ControlKey.Shift),p.metaKey&&i.push(E.ControlKey.Meta),i}function lr(p,i){let o=(n,r)=>{let f=n.target;if(f&&(f.tagName==="INPUT"||f.tagName==="TEXTAREA"||f.isContentEditable))return;let d=Xr[n.code],c;if(d!==void 0)c={control_key:d,down:r};else if(n.key.length===1){if(!r)return;c={unicode:n.key.codePointAt(0),down:!0}}else return;c.modifiers=Qr(n),c.mode=E.KeyboardMode.Legacy,i.send(E.Message.create({key_event:E.KeyEvent.create(c)})).catch(()=>{}),(n.metaKey||n.ctrlKey)&&["KeyT","KeyN","KeyW","KeyR","Tab"].includes(n.code)||n.preventDefault()},e=n=>o(n,!0),t=n=>o(n,!1);return window.addEventListener("keydown",e),window.addEventListener("keyup",t),()=>{window.removeEventListener("keydown",e),window.removeEventListener("keyup",t)}}function cr(p){p.send(E.Message.create({key_event:E.KeyEvent.create({control_key:E.ControlKey.CtrlAltDel,down:!0,mode:E.KeyboardMode.Legacy})})).catch(()=>{})}var dr="1.4.0";function Zr(){let p=document.getElementById("custom-config");if(!p)throw new Error("missing <script id='custom-config'> tag");let i=(p.textContent||"").trim();if(!i)throw new Error("empty custom-config payload");return JSON.parse(i)}function Jt(p){let i=document.getElementById("root");i&&(i.innerHTML=`<div class="placeholder">${p}</div>`)}function it(p){return p.replace(/[&<>"']/g,i=>({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"})[i])}function gr(p){return new TextEncoder().encode(p)}function eo(p,i){return new Promise(o=>{let e=document.getElementById("root");if(!e){o("");return}let t=i?`<p class="error-inline">${it(i)}</p>`:"";e.innerHTML=`
<div class="placeholder">
<h1>Connect to <code>${it(p.peer_id)}</code></h1>
<p class="muted">If the host requires a password, enter it below. Leave blank for "accept without password" hosts.</p>
${t}
<form id="pw-form" class="pw-form">
<input id="pw-input" type="password" autocomplete="current-password" placeholder="Password (optional)" />
<button type="submit">Connect</button>
</form>
</div>`;let n=document.getElementById("pw-form"),r=document.getElementById("pw-input");r?.focus(),n?.addEventListener("submit",f=>{f.preventDefault(),o(r?.value||"")})})}async function to(){let p=Zr();if(await Gn,!p.key)throw new Error("custom-config.key empty (id_ed25519.pub missing)");let i=ni(p.key);if(i.length!==32)throw new Error(`server pk wrong length ${i.length}`);let o;for(;;){let e=await eo(p,o);try{await no(p,i,e);return}catch(t){let n=String(t);if(n.includes("Wrong Password")||n.includes("Bad password")||n.toLowerCase().includes("password")){o="Wrong password \u2014 try again.";continue}console.error("[rustdesk-web] fatal:",t);return}}}async function no(p,i,o){Jt(`<h1>Connecting to ${it(p.peer_id)}\u2026</h1><p class="muted">1/3: rendezvous</p>`);let e=ir(p.rendezvous_server),t=await tr(e,p.peer_id,p.key,dr);if(t.signedIdPk.length===0)throw new Error("Server didn't sign the peer key \u2014 update the host's RustDesk to 1.4+.");let n,r;try{let q=Lt(t.signedIdPk,i),K=E.IdPk.decode(q);r=K.id||"",n=K.pk||new Uint8Array(0)}catch(q){throw new Error(`Signature verify failed \u2014 server pk on file (${p.key}) does not match what hbbs signed with. (${q})`)}if(r!==p.peer_id)throw new Error(`Peer ID mismatch (signed=${r}, requested=${p.peer_id})`);if(!t.relayServer)throw new Error("No relay server. Browser cannot do direct connect; set --relay-servers <host> on hbbs.");let f=t.peerUuid||nr();t.peerUuid||console.warn("[rustdesk-web] no peer uuid in RelayResponse \u2014 fallback (relay pairing will likely fail)"),Jt(`<h1>Connecting to ${it(p.peer_id)}\u2026</h1><p class="muted">2/3: relay handshake</p>`);let d=rr(t.relayServer),c=await At.connect({wsUrl:d,peerId:p.peer_id,uuid:f,licenceKey:p.key});Jt(`<h1>Connecting to ${it(p.peer_id)}\u2026</h1><p class="muted">3/3: secure handshake + login</p>`);let k;try{k=await Ct.open({relay:c,peerId:p.peer_id,peerSignPk:n,myName:p.admin_name||"web-admin",password:gr(o),clientVersion:dr,sessionId:Math.floor(Math.random()*Number.MAX_SAFE_INTEGER)})}catch(q){throw c.close(),q}window.__rdw={relay:c,session:k.session,peerInfo:k.peerInfo,cfg:p},await io(p,k.session,k.peerInfo,k.preloginExtras)}async function io(p,i,o,e){let t=document.getElementById("root");if(!t)return;t.innerHTML='<div class="session" id="session"></div><div class="hud" id="hud">connecting\u2026</div>';let n=document.getElementById("session"),r=document.getElementById("hud"),f=new It(n),d=new Bt(V=>f.draw(V)),c=new Mt,k=fr(f,i),q=lr(f,i);f.el().focus();let K=document.createElement("span");K.className="hud-fps",r.appendChild(K);let W=document.createElement("button");W.className="hud-btn",W.textContent="\u{1F507} Mute",W.addEventListener("click",()=>{let V=!c.isMuted();c.setMuted(V),W.textContent=V?"\u{1F508} Unmute":"\u{1F507} Mute",c.resume().catch(()=>{})}),r.appendChild(W);let re=document.createElement("button");re.textContent="Ctrl+Alt+Del",re.className="hud-btn",re.addEventListener("click",()=>{cr(i),f.el().focus()}),r.appendChild(re),setInterval(()=>{let V=f.size(),be=V.width?`${V.width}\xD7${V.height}`:"\u2014";K.textContent=` ${it(o.hostname||p.peer_id)} \xB7 ${be} \xB7 ${f.fps()} fps `},1e3);for(let V of e)if(V.misc?.audio_format)try{c.configure(V.misc.audio_format)}catch(be){console.warn("[rustdesk-web] audio init failed:",be)}for(;;){let V;try{V=await i.recv()}catch(be){console.error("[rustdesk-web] session recv failed:",be),r.textContent=`disconnected: ${String(be).slice(0,80)}`;break}if(V.video_frame){d.pushVideoFrame(V.video_frame);continue}if(V.test_delay){let be=V.test_delay;i.send(E.Message.create({test_delay:E.TestDelay.create({time:be.time,from_client:!0,last_delay:be.last_delay,target_bitrate:be.target_bitrate})})).catch(()=>{});continue}if(V.audio_frame){let be=V.audio_frame.data||new Uint8Array(0);c.pushFrame(be);continue}if(!(V.cursor_data||V.cursor_position||V.cursor_id!=null)&&V.misc){if(V.misc.audio_format)try{c.configure(V.misc.audio_format)}catch(be){console.warn("[rustdesk-web] audio init failed:",be)}continue}}d.close(),c.close()}to().catch(p=>{console.error("[rustdesk-web] boot failed:",p),Jt(`<div class="error"><h1>Failed to start</h1><pre>${it(String(p))}</pre></div>`)});